Trait exonum::encoding::Field
[−]
[src]
pub trait Field<'a> { unsafe fn read(buffer: &'a [u8], from: Offset, to: Offset) -> Self; fn write(&self, buffer: &mut Vec<u8>, from: Offset, to: Offset); fn field_size() -> Offset; fn check(
buffer: &'a [u8],
from: CheckedOffset,
to: CheckedOffset,
latest_segment: CheckedOffset
) -> Result<CheckedOffset, Error>; }
Trait for all types that could be a field in encoding
.
Required Methods
unsafe fn read(buffer: &'a [u8], from: Offset, to: Offset) -> Self
Read Field from buffer, with given position,
beware of memory unsafety,
you should check
Field
before read
.
fn write(&self, buffer: &mut Vec<u8>, from: Offset, to: Offset)
Write Field to buffer, in given position
write
doesn't lead to memory unsafety.
fn field_size() -> Offset
Field's header size
fn check(
buffer: &'a [u8],
from: CheckedOffset,
to: CheckedOffset,
latest_segment: CheckedOffset
) -> Result<CheckedOffset, Error>
buffer: &'a [u8],
from: CheckedOffset,
to: CheckedOffset,
latest_segment: CheckedOffset
) -> Result<CheckedOffset, Error>
Checks if data in the buffer could be deserialized. Returns an index of latest data seen.
Implementations on Foreign Types
impl<'a> Field<'a> for bool
[src]
impl<'a> Field<'a> for u8
[src]
impl<'a> Field<'a> for i8
[src]
impl<'a> Field<'a> for u16
[src]
impl<'a> Field<'a> for i16
[src]
impl<'a> Field<'a> for u32
[src]
impl<'a> Field<'a> for i32
[src]
impl<'a> Field<'a> for u64
[src]
impl<'a> Field<'a> for i64
[src]
impl<'a> Field<'a> for SystemTime
[src]
impl<'a> Field<'a> for SocketAddr
[src]
Implementors
impl<'a> Field<'a> for Height
impl<'a> Field<'a> for Round
impl<'a> Field<'a> for ValidatorId
impl<'a> Field<'a> for &'a Signature
impl<'a> Field<'a> for &'a PublicKey
impl<'a> Field<'a> for &'a Hash
impl<'a, T> Field<'a> for T where
T: SegmentField<'a>,impl<'a> Field<'a> for Block
impl<'a> Field<'a> for TxLocation