Skip to main content

PageGuard

Struct PageGuard 

Source
pub struct PageGuard { /* private fields */ }
Expand description

A pin on a cached page.

While a PageGuard is alive the page stays resident and unevictable. Read the page with read and write it with write; taking a write guard marks the page dirty. Dropping the PageGuard releases the pin.

Implementations§

Source§

impl PageGuard

Source

pub fn id(&self) -> PageId

The id of the pinned page.

Source

pub fn is_dirty(&self) -> bool

Whether the page has unflushed modifications.

Source

pub fn read(&self) -> PageRef<'_>

Borrow the page for reading. Multiple readers of the same page proceed concurrently.

Source

pub fn write(&self) -> PageMut<'_>

Borrow the page for writing, marking it dirty.

The page is recorded dirty as soon as the write guard is taken, so it will be flushed even if the actual mutation is conditional.

Trait Implementations§

Source§

impl Debug for PageGuard

Source§

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

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

impl Drop for PageGuard

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

fn pin_drop(self: Pin<&mut Self>)

🔬This is a nightly-only experimental API. (pin_ergonomics)
Execute the destructor for this type, but different to Drop::drop, it requires self to be pinned. Read more

Auto Trait Implementations§

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