Skip to main content

RecordRef

Struct RecordRef 

Source
pub struct RecordRef<'a> {
    pub len: u32,
    pub kind: u8,
    pub flags: u8,
    pub prev: u64,
    pub ttl_ms: Option<u64>,
    pub key: &'a [u8],
    pub value: &'a [u8],
}
Expand description

A record read back out of a page.

Fields§

§len: u32

The exact length, header and trailer included.

§kind: u8

The raw kind byte. Use RecordRef::kind to ask what it means.

§flags: u8§prev: u64

The previous address in this key’s chain, or 0.

§ttl_ms: Option<u64>

Unix milliseconds, or None if the record has no TTL.

§key: &'a [u8]

The key, borrowed from the page.

§value: &'a [u8]

The value, borrowed from the page.

Implementations§

Source§

impl<'a> RecordRef<'a>

Source

pub fn parse(bytes: &'a [u8]) -> Result<Option<RecordRef<'a>>>

Parses the record at the front of bytes.

Ok(None) means len was zero, which is the end of the log and not an error. That is the normal way replay finishes (06 section 4) and it is also what a half written tail looks like, which is exactly the point: the two are indistinguishable and both mean stop here.

§Errors

Code::Corrupt if the length is impossible, if the record runs past the end of bytes, or if a checksummed record fails its checksum.

Source

pub fn stride(&self) -> usize

How far the next record is, which is RecordRef::len rounded up to eight.

Walk by this and not by len.

Source

pub fn kind(&self) -> Option<RecordKind>

The kind, if this version knows it.

None is not an error. It means a newer writer put something here and len says how far to jump to get past it.

Source

pub fn is_tombstone(&self) -> bool

Whether this record deletes its key.

Source

pub fn is_tiered(&self) -> bool

Whether the value is elsewhere and this record only points at it.

Trait Implementations§

Source§

impl<'a> Clone for RecordRef<'a>

Source§

fn clone(&self) -> RecordRef<'a>

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<'a> Copy for RecordRef<'a>

Source§

impl<'a> Debug for RecordRef<'a>

Source§

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

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

impl<'a> Eq for RecordRef<'a>

Source§

impl<'a> PartialEq for RecordRef<'a>

Source§

fn eq(&self, other: &RecordRef<'a>) -> bool

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

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

Inequality operator !=. Read more
Source§

impl<'a> StructuralPartialEq for RecordRef<'a>

Auto Trait Implementations§

§

impl<'a> Freeze for RecordRef<'a>

§

impl<'a> RefUnwindSafe for RecordRef<'a>

§

impl<'a> Send for RecordRef<'a>

§

impl<'a> Sync for RecordRef<'a>

§

impl<'a> Unpin for RecordRef<'a>

§

impl<'a> UnsafeUnpin for RecordRef<'a>

§

impl<'a> UnwindSafe for RecordRef<'a>

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 = !

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.