Skip to main content

Hello

Struct Hello 

Source
pub struct Hello {
    pub abi_major: u16,
    pub abi_minor: u16,
    pub window_bytes: u64,
    pub max_batch_rows: u64,
    pub offered: CapabilitySet,
    pub source_bytes: u64,
}
Expand description

The host introducing itself.

Fields§

§abi_major: u16

The major ABI version the host speaks. A mismatch here is fatal.

§abi_minor: u16

The minor ABI version the host speaks. A mismatch here is not fatal.

§window_bytes: u64

How many bytes of the source the host is willing to keep visible to the guest at once.

Zero means the host will map the whole source and the decoder never has to think about windows.

§max_batch_rows: u64

The largest number of rows the host will ask for in one scan request.

§offered: CapabilitySet

What the host can do.

§source_bytes: u64

How many bytes the source has in total, or zero if the host is not saying.

A decoder that has to find its own footer needs this, and a decoder that reads forwards from the start does not, which is why zero is allowed rather than being an error.

This field was appended after the ABI shipped, so it is the first real exercise of the grow-at-the-end rule. A host built before it existed writes a Hello that ends after offered, and a decoder built after it reads zero and carries on.

Implementations§

Source§

impl Hello

Source

pub const VERSION: u16 = 1

The layout version of this record.

Source

pub fn encode(&self, w: &mut Writer<'_>) -> Result<()>

Writes the record.

§Errors

Returns Error::BufferFull if the buffer runs out.

Source

pub fn decode(version: u16, p: &mut Reader<'_>) -> Result<Self>

Reads the record from its payload.

§Errors

Returns Error::UnsupportedVersion if the layout version is not one this build knows, or Error::Truncated if the payload ends early.

Trait Implementations§

Source§

impl Clone for Hello

Source§

fn clone(&self) -> Hello

Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§

fn clone_from(&mut self, source: &Self)

Performs copy-assignment from source. Read more
Source§

impl Copy for Hello

Source§

impl Debug for Hello

Source§

fn fmt(&self, f: &mut Formatter<'_>) -> Result

Formats the value using the given formatter. Read more
Source§

impl Eq for Hello

Source§

impl PartialEq for Hello

Source§

fn eq(&self, other: &Hello) -> bool

Equality operator ==. Read more
1.0.0 (const: unstable) · Source§

fn ne(&self, other: &Rhs) -> bool

Inequality operator !=. Read more
Source§

impl StructuralPartialEq for Hello

Auto Trait Implementations§

§

impl Freeze for Hello

§

impl RefUnwindSafe for Hello

§

impl Send for Hello

§

impl Sync for Hello

§

impl Unpin for Hello

§

impl UnsafeUnpin for Hello

§

impl UnwindSafe for Hello

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> CloneToUninit for T
where T: Clone,

Source§

unsafe fn clone_to_uninit(&self, dest: *mut u8)

🔬This is a nightly-only experimental API. (clone_to_uninit)
Performs copy-assignment from self to dest. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = !

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, !>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.