pub struct Encoder<W> { /* private fields */ }Expand description
A non-allocating CBOR encoder writing encoded bytes to the given Write sink.
Implementations§
Source§impl<W> Encoder<W>where
W: Write,
impl<W> Encoder<W>where
W: Write,
Sourcepub fn writer_mut(&mut self) -> &mut W
pub fn writer_mut(&mut self) -> &mut W
Get mutable access to the inner writer.
Sourcepub fn into_writer(self) -> W
pub fn into_writer(self) -> W
Get back the Write impl.
Sourcepub fn encode<T>(
&mut self,
x: T,
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
pub fn encode<T>( &mut self, x: T, ) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
Encode any type that implements Encode.
Sourcepub fn encode_with<C, T>(
&mut self,
x: T,
ctx: &mut C,
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>where
T: Encode<C>,
pub fn encode_with<C, T>(
&mut self,
x: T,
ctx: &mut C,
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>where
T: Encode<C>,
Encode any type that implements Encode.
Sourcepub fn u8(
&mut self,
x: u8,
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
pub fn u8( &mut self, x: u8, ) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
Encode a u8 value.
Sourcepub fn i8(
&mut self,
x: i8,
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
pub fn i8( &mut self, x: i8, ) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
Encode an i8 value.
Sourcepub fn u16(
&mut self,
x: u16,
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
pub fn u16( &mut self, x: u16, ) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
Encode a u16 value.
Sourcepub fn i16(
&mut self,
x: i16,
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
pub fn i16( &mut self, x: i16, ) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
Encode an i16 value.
Sourcepub fn u32(
&mut self,
x: u32,
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
pub fn u32( &mut self, x: u32, ) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
Encode a u32 value.
Sourcepub fn i32(
&mut self,
x: i32,
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
pub fn i32( &mut self, x: i32, ) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
Encode an i32 value.
Sourcepub fn u64(
&mut self,
x: u64,
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
pub fn u64( &mut self, x: u64, ) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
Encode a u64 value.
Sourcepub fn i64(
&mut self,
x: i64,
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
pub fn i64( &mut self, x: i64, ) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
Encode an i64 value.
Sourcepub fn int(
&mut self,
x: Int,
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
pub fn int( &mut self, x: Int, ) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
Encode a CBOR integer.
See Int for details regarding the value range of CBOR integers.
Sourcepub fn null(&mut self) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
pub fn null(&mut self) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
Encode a CBOR null value.
Sourcepub fn undefined(
&mut self,
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
pub fn undefined( &mut self, ) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
Encode a CBOR undefined value.
Sourcepub fn simple(
&mut self,
x: u8,
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
pub fn simple( &mut self, x: u8, ) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
Encode a CBOR simple value.
Sourcepub fn f16(
&mut self,
x: f32,
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
pub fn f16( &mut self, x: f32, ) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
Encode an f32 value as a half float (f16).
Requires feature "half".
NB: The conversion from f32 to f16 is potentially lossy.
Generally values are truncated and rounded to the nearest 16-bit
value, except:
- 32-bit values which do not fit into 16 bit become ±∞.
- 32-bit subnormal values become ±0.
- Exponents smaller than the min. 16-bit exponent become 16-bit subnormals or ±0.
For further details please consult the half crate which is
used internally for f16 support.
Sourcepub fn f32(
&mut self,
x: f32,
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
pub fn f32( &mut self, x: f32, ) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
Encode an f32 value.
Sourcepub fn f64(
&mut self,
x: f64,
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
pub fn f64( &mut self, x: f64, ) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
Encode an f64 value.
Sourcepub fn bool(
&mut self,
x: bool,
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
pub fn bool( &mut self, x: bool, ) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
Encode a bool value.
Sourcepub fn char(
&mut self,
x: char,
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
pub fn char( &mut self, x: char, ) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
Encode a char value.
Sourcepub fn tag<T>(
&mut self,
x: T,
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
pub fn tag<T>( &mut self, x: T, ) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
Encode a CBOR tag.
Sourcepub fn bytes(
&mut self,
x: &[u8],
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
pub fn bytes( &mut self, x: &[u8], ) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
Encode a byte slice.
Sourcepub fn str(
&mut self,
x: &str,
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
pub fn str( &mut self, x: &str, ) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
Encode a string slice.
Sourcepub fn array(
&mut self,
len: u64,
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
pub fn array( &mut self, len: u64, ) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
Begin encoding an array with len elements.
Sourcepub fn map(
&mut self,
len: u64,
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
pub fn map( &mut self, len: u64, ) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
Begin encoding a map with len entries.
Sourcepub fn begin_array(
&mut self,
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
pub fn begin_array( &mut self, ) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
Begin encoding an array of unknown size.
Use Encoder::end to terminate the array.
Sourcepub fn begin_bytes(
&mut self,
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
pub fn begin_bytes( &mut self, ) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
Begin encoding an indefinite number of byte slices.
Use Encoder::end to terminate.
Sourcepub fn begin_map(
&mut self,
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
pub fn begin_map( &mut self, ) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
Begin encoding a map of unknown size.
Use Encoder::end to terminate the map.
Sourcepub fn begin_str(
&mut self,
) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
pub fn begin_str( &mut self, ) -> Result<&mut Encoder<W>, Error<<W as Write>::Error>>
Begin encoding an indefinite number of string slices.
Use Encoder::end to terminate.
Trait Implementations§
Auto Trait Implementations§
impl<W> Freeze for Encoder<W>where
W: Freeze,
impl<W> RefUnwindSafe for Encoder<W>where
W: RefUnwindSafe,
impl<W> Send for Encoder<W>where
W: Send,
impl<W> Sync for Encoder<W>where
W: Sync,
impl<W> Unpin for Encoder<W>where
W: Unpin,
impl<W> UnsafeUnpin for Encoder<W>where
W: UnsafeUnpin,
impl<W> UnwindSafe for Encoder<W>where
W: UnwindSafe,
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
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more