Skip to main content

Page

Struct Page 

Source
pub struct Page {
    pub header: PageHeader,
    pub data: BytesMut,
}
Expand description

Page - a fixed-size storage unit

Fields§

§header: PageHeader

Page header

§data: BytesMut

Page data (excluding header)

Implementations§

Source§

impl Page

Source

pub fn new(page_id: PageId, page_type: PageType) -> Self

Create a new empty page

Source

pub fn from_bytes(bytes: &[u8]) -> KernelResult<Self>

Create from raw bytes

Source

pub fn to_bytes(&self) -> Bytes

Serialize to bytes

Source

pub fn page_id(&self) -> PageId

Get page ID

Source

pub fn lsn(&self) -> LogSequenceNumber

Get page LSN

Source

pub fn set_lsn(&mut self, lsn: LogSequenceNumber)

Set page LSN (after modification)

Source

pub fn needs_redo(&self, record_lsn: LogSequenceNumber) -> bool

Check if page needs redo during recovery

Returns true if the page’s LSN is less than the WAL record’s LSN, meaning the WAL record’s changes haven’t been applied yet.

Source

pub fn compute_checksum(&self) -> u32

Compute checksum for the page

Source

pub fn validate_checksum(&self) -> bool

Validate page checksum

Source

pub fn update_checksum(&mut self)

Update checksum before writing to disk

Auto Trait Implementations§

§

impl Freeze for Page

§

impl RefUnwindSafe for Page

§

impl Send for Page

§

impl Sync for Page

§

impl Unpin for Page

§

impl UnsafeUnpin for Page

§

impl UnwindSafe for Page

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> 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> IntoEither for T

Source§

fn into_either(self, into_left: bool) -> Either<Self, Self>

Converts 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 more
Source§

fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
where F: FnOnce(&Self) -> bool,

Converts 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
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.