File tree 2 files changed +18
-0
lines changed
2 files changed +18
-0
lines changed Original file line number Diff line number Diff line change @@ -419,6 +419,16 @@ mod test {
419
419
assert_eq ! ( r. read_to_str( ) , ~"testingtesting\n testing");
420
420
}
421
421
422
+ #[test]
423
+ fn test_write_char() {
424
+ let mut writer = MemWriter::new();
425
+ writer.write_char('a');
426
+ writer.write_char('\n ');
427
+ writer.write_char('ệ');
428
+ let mut r = BufReader::new(*writer.inner_ref());
429
+ assert_eq!(r.read_to_str(), ~" a\n ệ") ;
430
+ }
431
+
422
432
#[ test]
423
433
fn test_read_whole_string_bad( ) {
424
434
let buf = [ 0xff ] ;
Original file line number Diff line number Diff line change @@ -290,6 +290,7 @@ Out of scope
290
290
#[ allow( missing_doc) ] ;
291
291
292
292
use cast;
293
+ use char:: Char ;
293
294
use condition:: Guard ;
294
295
use container:: Container ;
295
296
use int;
@@ -914,6 +915,13 @@ pub trait Writer {
914
915
self . write ( [ '\n' as u8 ] ) ;
915
916
}
916
917
918
+ /// Write a single char, encoded as UTF-8.
919
+ fn write_char ( & mut self , c : char ) {
920
+ let mut buf = [ 0u8 , ..4 ] ;
921
+ let n = c. encode_utf8 ( buf. as_mut_slice ( ) ) ;
922
+ self . write ( buf. slice_to ( n) ) ;
923
+ }
924
+
917
925
/// Write the result of passing n through `int::to_str_bytes`.
918
926
fn write_int ( & mut self , n : int ) {
919
927
int:: to_str_bytes ( n, 10 u, |bytes| self . write ( bytes) )
You can’t perform that action at this time.
0 commit comments