Struct rustc_serialize::opaque::FileEncoder
source · pub struct FileEncoder {
buf: Box<[MaybeUninit<u8>]>,
buffered: usize,
flushed: usize,
file: File,
res: Result<(), Error>,
}
Expand description
FileEncoder
encodes data to file via fixed-size buffer.
There used to be a MemEncoder
type that encoded all the data into a
Vec
. FileEncoder
is better because its memory use is determined by the
size of the buffer, rather than the full length of the encoded data, and
because it doesn’t need to reallocate memory along the way.
Fields§
§buf: Box<[MaybeUninit<u8>]>
The input buffer. For adequate performance, we need more control over
buffering than BufWriter
offers. If BufWriter
ever offers a raw
buffer access API, we can use it, and remove buf
and buffered
.
buffered: usize
§flushed: usize
§file: File
§res: Result<(), Error>
Implementations§
source§impl FileEncoder
impl FileEncoder
pub fn new<P: AsRef<Path>>(path: P) -> Result<Self>
pub fn position(&self) -> usize
pub fn flush(&mut self)
pub fn file(&self) -> &File
fn write_one(&mut self, value: u8)
fn write_all(&mut self, buf: &[u8])
fn write_all_unbuffered(&mut self, buf: &[u8])
pub fn finish(self) -> Result<usize, Error>
Trait Implementations§
source§impl Drop for FileEncoder
impl Drop for FileEncoder
source§impl Encodable<FileEncoder> for [u8]
impl Encodable<FileEncoder> for [u8]
fn encode(&self, e: &mut FileEncoder)
source§impl Encodable<FileEncoder> for IntEncodedWithFixedSize
impl Encodable<FileEncoder> for IntEncodedWithFixedSize
fn encode(&self, e: &mut FileEncoder)
source§impl Encoder for FileEncoder
impl Encoder for FileEncoder
fn emit_usize(&mut self, v: usize)
fn emit_u128(&mut self, v: u128)
fn emit_u64(&mut self, v: u64)
fn emit_u32(&mut self, v: u32)
fn emit_u16(&mut self, v: u16)
fn emit_u8(&mut self, v: u8)
fn emit_isize(&mut self, v: isize)
fn emit_i128(&mut self, v: i128)
fn emit_i64(&mut self, v: i64)
fn emit_i32(&mut self, v: i32)
fn emit_i16(&mut self, v: i16)
fn emit_raw_bytes(&mut self, s: &[u8])
fn emit_i8(&mut self, v: i8)
fn emit_bool(&mut self, v: bool)
fn emit_char(&mut self, v: char)
fn emit_str(&mut self, v: &str)
fn emit_enum_variant<F>(&mut self, v_id: usize, f: F)where F: FnOnce(&mut Self),
Auto Trait Implementations§
impl !RefUnwindSafe for FileEncoder
impl Send for FileEncoder
impl Sync for FileEncoder
impl Unpin for FileEncoder
impl !UnwindSafe for FileEncoder
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...)
attributes. Please see the Rust Reference’s “Type Layout” chapter for details on type layout guarantees.
Size:48 bytes