Skip to main content

Record

Struct Record 

Source
#[repr(transparent)]
pub struct Record<P: Value, const F: u32, const O: bool> { pub value: P, }
Expand description

A record is responsible for encoding the field number, wire type and payload. The wire type tells the parser how big the payload after it is. For more details, refer to the Condensed Reference Card.

The P is the payload, the F is the field number, and O is whether to apply the zero-sized optimization or not. Most of the time, it shouldn’t matter if the optimization is applied. However, if something is part of a repeated field, then applying the optimization would change the number of elements in the array.

Fields§

§value: P

The value of the record. This is pub because of a quirk in Rust’s orphan rules which prevent implementing From<Record<P,...> for P.

Trait Implementations§

Source§

impl<P: Clone + Value, const F: u32, const O: bool> Clone for Record<P, F, O>

Source§

fn clone(&self) -> Record<P, F, O>

Returns a duplicate of the value. Read more
1.0.0 · Source§

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

Performs copy-assignment from source. Read more
Source§

impl<P: Debug + Value, const F: u32, const O: bool> Debug for Record<P, F, O>

Source§

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

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

impl<P: Default + Value, const F: u32, const O: bool> Default for Record<P, F, O>

Source§

fn default() -> Record<P, F, O>

Returns the “default value” for a type. Read more
Source§

impl<P: Value, const F: u32, const O: bool> From<P> for Record<P, F, O>

Source§

fn from(value: P) -> Self

Converts to this type from the input type.
Source§

impl<P: Hash + Value, const F: u32, const O: bool> Hash for Record<P, F, O>

Source§

fn hash<__H: Hasher>(&self, state: &mut __H)

Feeds this value into the given Hasher. Read more
1.3.0 · Source§

fn hash_slice<H>(data: &[Self], state: &mut H)
where H: Hasher, Self: Sized,

Feeds a slice of this type into the given Hasher. Read more
Source§

impl<P: PartialEq + Value, const F: u32, const O: bool> PartialEq for Record<P, F, O>

Source§

fn eq(&self, other: &Record<P, F, O>) -> bool

Tests for self and other values to be equal, and is used by ==.
1.0.0 · Source§

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

Tests for !=. The default implementation is almost always sufficient, and should not be overridden without very good reason.
Source§

impl<P: Value, const F: u32, const O: bool> Value for Record<P, F, O>

§Safety

The Default implementation will return all zero-representations.

Source§

const WIRE_TYPE: WireType = P::WIRE_TYPE

The wire type this value uses.
Source§

fn proto_len(&self) -> u64

The number of bytes it takes to encode this value. Do not include the number of bytes it takes to encode the length-prefix as a varint. For example, using this snippet of the reference: Read more
Source§

fn encode<W: Write>(&self, writer: &mut W) -> Result<()>

Encode the value to the in-wire protobuf format. For length-delimited types, do not include the length-prefix; see Value::proto_len for more details. Read more
Source§

impl<P: Copy + Value, const F: u32, const O: bool> Copy for Record<P, F, O>

Source§

impl<P: Eq + Value, const F: u32, const O: bool> Eq for Record<P, F, O>

Source§

impl<P: Value, const F: u32, const O: bool> StructuralPartialEq for Record<P, F, O>

Auto Trait Implementations§

§

impl<P, const F: u32, const O: bool> Freeze for Record<P, F, O>
where P: Freeze,

§

impl<P, const F: u32, const O: bool> RefUnwindSafe for Record<P, F, O>
where P: RefUnwindSafe,

§

impl<P, const F: u32, const O: bool> Send for Record<P, F, O>
where P: Send,

§

impl<P, const F: u32, const O: bool> Sync for Record<P, F, O>
where P: Sync,

§

impl<P, const F: u32, const O: bool> Unpin for Record<P, F, O>
where P: Unpin,

§

impl<P, const F: u32, const O: bool> UnsafeUnpin for Record<P, F, O>
where P: UnsafeUnpin,

§

impl<P, const F: u32, const O: bool> UnwindSafe for Record<P, F, O>
where P: UnwindSafe,

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> ToOwned for T
where T: Clone,

Source§

type Owned = T

The resulting type after obtaining ownership.
Source§

fn to_owned(&self) -> T

Creates owned data from borrowed data, usually by cloning. Read more
Source§

fn clone_into(&self, target: &mut T)

Uses borrowed data to replace owned data, usually by cloning. Read more
Source§

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

Source§

type Error = Infallible

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

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

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.