pub struct Exact;Expand description
Encode a given numeric value exactly using its native format.
This does not minimise or convert, so the value is written as is.
§Examples
u8 is encoded to positive fixint or uint 8
use serde::Serialize;
use messagepack_core::SliceWriter;
use messagepack_serde::ser::{Serializer, Exact};
let mut buf = [0_u8;1];
let mut writer = SliceWriter::from_slice(&mut buf);
let mut ser = Serializer::new(&mut writer, Exact);
1_u8.serialize(&mut ser).unwrap();
let expected = [1_u8]; // 1 encoded in `positive fixint`
assert_eq!(buf,expected);u16 is encoded to uint 16
use serde::Serialize;
use messagepack_core::SliceWriter;
use messagepack_serde::ser::{Serializer, Exact};
let mut buf = [0_u8;3];
let mut writer = SliceWriter::from_slice(&mut buf);
let mut ser = Serializer::new(&mut writer, Exact);
1_u16.serialize(&mut ser).unwrap();
let expected = [0xcd_u8, 0x00_u8, 1_u8]; // 1 encoded in `uint 16`
assert_eq!(buf,expected);Trait Implementations§
Source§impl<W: IoWrite> NumEncoder<W> for Exact
impl<W: IoWrite> NumEncoder<W> for Exact
fn encode_i8( v: i8, writer: &mut W, ) -> Result<usize, Error<<W as IoWrite>::Error>>
fn encode_i16( v: i16, writer: &mut W, ) -> Result<usize, Error<<W as IoWrite>::Error>>
fn encode_i32( v: i32, writer: &mut W, ) -> Result<usize, Error<<W as IoWrite>::Error>>
fn encode_i64( v: i64, writer: &mut W, ) -> Result<usize, Error<<W as IoWrite>::Error>>
fn encode_i128( v: i128, writer: &mut W, ) -> Result<usize, Error<<W as IoWrite>::Error>>
fn encode_u8( v: u8, writer: &mut W, ) -> Result<usize, Error<<W as IoWrite>::Error>>
fn encode_u16( v: u16, writer: &mut W, ) -> Result<usize, Error<<W as IoWrite>::Error>>
fn encode_u32( v: u32, writer: &mut W, ) -> Result<usize, Error<<W as IoWrite>::Error>>
fn encode_u64( v: u64, writer: &mut W, ) -> Result<usize, Error<<W as IoWrite>::Error>>
fn encode_u128( v: u128, writer: &mut W, ) -> Result<usize, Error<<W as IoWrite>::Error>>
fn encode_f32( v: f32, writer: &mut W, ) -> Result<usize, Error<<W as IoWrite>::Error>>
fn encode_f64( v: f64, writer: &mut W, ) -> Result<usize, Error<<W as IoWrite>::Error>>
Auto Trait Implementations§
impl Freeze for Exact
impl RefUnwindSafe for Exact
impl Send for Exact
impl Sync for Exact
impl Unpin for Exact
impl UnwindSafe for Exact
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
Mutably borrows from an owned value. Read more