File tree 3 files changed +26
-0
lines changed
3 files changed +26
-0
lines changed Original file line number Diff line number Diff line change @@ -55,6 +55,7 @@ native "rust" mod rustrt {
55
55
fn str_vec ( str s) -> vec[ u8 ] ;
56
56
fn str_byte_len ( str s) -> uint ;
57
57
fn str_alloc ( uint n_bytes ) -> str ;
58
+ fn str_from_ivec ( & u8 [ mutable?] b ) -> str ;
58
59
fn str_from_vec ( vec[ mutable? u8 ] b ) -> str ;
59
60
fn str_from_cstr ( sbuf cstr) -> str ;
60
61
fn str_from_buf ( sbuf buf, uint len) -> str ;
@@ -170,6 +171,10 @@ fn unsafe_from_bytes(vec[mutable? u8] v) -> str {
170
171
ret rustrt:: str_from_vec ( v) ;
171
172
}
172
173
174
+ fn unsafe_from_bytes_ivec ( & u8 [ mutable?] v ) -> str {
175
+ ret rustrt:: str_from_ivec ( v) ;
176
+ }
177
+
173
178
fn unsafe_from_byte ( u8 u) -> str { ret rustrt:: str_from_vec ( [ u] ) ; }
174
179
175
180
fn str_from_cstr ( sbuf cstr) -> str { ret rustrt:: str_from_cstr ( cstr) ; }
Original file line number Diff line number Diff line change @@ -313,6 +313,26 @@ str_byte_len(rust_task *task, rust_str *s)
313
313
return s->fill - 1 ; // -1 for the '\0' terminator.
314
314
}
315
315
316
+ extern " C" CDECL rust_str *
317
+ str_from_ivec (rust_task *task, rust_ivec *v)
318
+ {
319
+ uintptr_t fill = v->fill ? v->fill : v->payload .ptr ->fill ;
320
+ void *data = v->fill ? v->payload .data : v->payload .ptr ->data ;
321
+
322
+ rust_str *st =
323
+ vec_alloc_with_data (task,
324
+ fill + 1 , // +1 to fit at least '\0'
325
+ fill,
326
+ 1 ,
327
+ fill ? data : NULL );
328
+ if (!st) {
329
+ task->fail (2 );
330
+ return NULL ;
331
+ }
332
+ st->data [st->fill ++] = ' \0 ' ;
333
+ return st;
334
+ }
335
+
316
336
extern " C" CDECL rust_str *
317
337
str_from_vec (rust_task *task, rust_vec *v)
318
338
{
Original file line number Diff line number Diff line change @@ -41,6 +41,7 @@ str_buf
41
41
str_byte_len
42
42
str_from_buf
43
43
str_from_cstr
44
+ str_from_ivec
44
45
str_from_vec
45
46
str_push_byte
46
47
str_slice
You can’t perform that action at this time.
0 commit comments