pub struct XorbObjectInfoV0 {
pub ident: XorbObjectIdent,
pub version: u8,
pub xorb_hash: MerkleHash,
pub num_chunks: u32,
pub chunk_boundary_offsets: Vec<u32>,
pub chunk_hashes: Vec<MerkleHash>,
/* private fields */
}Expand description
Info struct for XorbObject. This is stored at the end of the XORB. DO NOT USE in any new code
Fields§
§ident: XorbObjectIdentXORB identifier: “XETBLOB”
version: u8Format version, expected to be 0 right now.
xorb_hash: MerkleHash256-bits, 32-bytes, The XORB Hash of this Xorb.
num_chunks: u32Total number of chunks in the Xorb. Length of chunk_boundary_offsets & chunk_hashes vectors.
chunk_boundary_offsets: Vec<u32>Byte offset marking the boundary of each chunk. Length of vector is num_chunks.
This vector only contains boundaries, so assumes the first chunk starts at offset 0. The final entry in vector is the total length of the chunks. See example below. chunk[n] are bytes in [chunk_boundary_offsets[n-1], chunk_boundary_offsets[n])
// ex. chunks: [ 0, 1, 2, 3 ]
// chunk_boundary_offsets: [ 100, 200, 300, 400]chunk_hashes: Vec<MerkleHash>Merklehash for each chunk stored in the Xorb. Length of vector is num_chunks.
Implementations§
Source§impl XorbObjectInfoV0
impl XorbObjectInfoV0
Sourcepub fn serialize<W: Write>(&self, writer: &mut W) -> Result<usize, CoreError>
👎Deprecated
pub fn serialize<W: Write>(&self, writer: &mut W) -> Result<usize, CoreError>
Serialize XorbObjectInfoV0 to provided Writer.
Assumes caller has set position of Writer to appropriate location for serialization.
Sourcepub fn deserialize<R: Read>(reader: &mut R) -> Result<(Self, u32), CoreError>
👎Deprecated
pub fn deserialize<R: Read>(reader: &mut R) -> Result<(Self, u32), CoreError>
Construct XorbObjectInfoV0 object from Read.
Expects metadata struct is found at end of Reader, written out in struct order.
pub fn deserialize_v0<R: Read>(reader: &mut R) -> Result<(Self, u32), CoreError>
Sourcepub async fn deserialize_async<R: AsyncRead + Unpin>(
reader: &mut R,
version: u8,
) -> Result<(Self, u32), CoreError>
pub async fn deserialize_async<R: AsyncRead + Unpin>( reader: &mut R, version: u8, ) -> Result<(Self, u32), CoreError>
Construct XorbObjectInfo object from AsyncRead. assumes that the ident and version have already been read and verified.
verifies that the length of the footer data matches the length field at the very end of the buffer
Trait Implementations§
Source§impl Clone for XorbObjectInfoV0
impl Clone for XorbObjectInfoV0
Source§fn clone(&self) -> XorbObjectInfoV0
fn clone(&self) -> XorbObjectInfoV0
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for XorbObjectInfoV0
impl Debug for XorbObjectInfoV0
Source§impl Default for XorbObjectInfoV0
impl Default for XorbObjectInfoV0
Source§impl PartialEq for XorbObjectInfoV0
impl PartialEq for XorbObjectInfoV0
Source§impl Serialize for XorbObjectInfoV0
impl Serialize for XorbObjectInfoV0
impl Eq for XorbObjectInfoV0
impl StructuralPartialEq for XorbObjectInfoV0
Auto Trait Implementations§
impl Freeze for XorbObjectInfoV0
impl RefUnwindSafe for XorbObjectInfoV0
impl Send for XorbObjectInfoV0
impl Sync for XorbObjectInfoV0
impl Unpin for XorbObjectInfoV0
impl UnsafeUnpin for XorbObjectInfoV0
impl UnwindSafe for XorbObjectInfoV0
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> DropFlavorWrapper<T> for T
impl<T> DropFlavorWrapper<T> for T
Source§impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
impl<T, W> HasTypeWitness<W> for Twhere
W: MakeTypeWitness<Arg = T>,
T: ?Sized,
Source§impl<T> Identity for Twhere
T: ?Sized,
impl<T> Identity for Twhere
T: ?Sized,
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
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