[−][src]Crate base64_stream
Base64 Stream
To encode/decode large data with the standard Base64 encoding.
Examples
Encode
ToBase64Reader
extern crate base64_stream; use std::io::Cursor; use std::io::Read; use base64_stream::ToBase64Reader; let test_data = b"Hi there, this is a simple sentence used for testing this crate. I hope all cases are correct.".to_vec(); let mut reader = ToBase64Reader::new(Cursor::new(test_data)); let mut base64 = [0u8; 4096]; let c = reader.read(&mut base64).unwrap(); assert_eq!(b"SGkgdGhlcmUsIHRoaXMgaXMgYSBzaW1wbGUgc2VudGVuY2UgdXNlZCBmb3IgdGVzdGluZyB0aGlzIGNyYXRlLiBJIGhvcGUgYWxsIGNhc2VzIGFyZSBjb3JyZWN0Lg==".to_vec(), base64[..c].to_vec());
ToBase64Writer
extern crate base64_stream; use std::fs::{self, File}; use std::io::Write; use base64_stream::ToBase64Writer; let test_data = b"Hi there, this is a simple sentence used for testing this crate. I hope all cases are correct.".as_ref(); let base64 = File::create("encode_output.txt").unwrap(); let mut writer = ToBase64Writer::new(base64); writer.write(test_data).unwrap(); writer.flush().unwrap(); // the flush method is only used when the full base64 data has been written drop(writer); assert_eq!("SGkgdGhlcmUsIHRoaXMgaXMgYSBzaW1wbGUgc2VudGVuY2UgdXNlZCBmb3IgdGVzdGluZyB0aGlzIGNyYXRlLiBJIGhvcGUgYWxsIGNhc2VzIGFyZSBjb3JyZWN0Lg==", fs::read_to_string("encode_output.txt").unwrap());
Decode
FromBase64Reader
extern crate base64_stream; use std::io::Cursor; use std::io::Read; use base64_stream::FromBase64Reader; let base64 = b"SGkgdGhlcmUsIHRoaXMgaXMgYSBzaW1wbGUgc2VudGVuY2UgdXNlZCBmb3IgdGVzdGluZyB0aGlzIGNyYXRlLiBJIGhvcGUgYWxsIGNhc2VzIGFyZSBjb3JyZWN0Lg==".to_vec(); let mut reader = FromBase64Reader::new(Cursor::new(base64)); let mut test_data = [0u8; 4096]; let c = reader.read(&mut test_data).unwrap(); assert_eq!(b"Hi there, this is a simple sentence used for testing this crate. I hope all cases are correct.".to_vec(), test_data[..c].to_vec());
FromBase64Writer
extern crate base64_stream; use std::fs::{self, File}; use std::io::Write; use base64_stream::FromBase64Writer; let base64 = b"SGkgdGhlcmUsIHRoaXMgaXMgYSBzaW1wbGUgc2VudGVuY2UgdXNlZCBmb3IgdGVzdGluZyB0aGlzIGNyYXRlLiBJIGhvcGUgYWxsIGNhc2VzIGFyZSBjb3JyZWN0Lg==".as_ref(); let test_data = File::create("decode_output.txt").unwrap(); let mut writer = FromBase64Writer::new(test_data); writer.write(base64).unwrap(); writer.flush().unwrap(); // the flush method is only used when the full base64 data has been written assert_eq!("Hi there, this is a simple sentence used for testing this crate. I hope all cases are correct.", fs::read_to_string("decode_output.txt").unwrap());
Re-exports
pub extern crate base64; |
Structs
FromBase64Reader | Read base64 data and decode them to plain data. |
FromBase64Writer | Write base64 data and decode them to plain data. |
ToBase64Reader | Read any data and encode them to base64 data. |
ToBase64Writer | Write any data and encode them to base64 data. |