pub struct BTreePageHeader {
pub header_offset: usize,
pub page_type: BTreePageType,
pub first_freeblock: u16,
pub cell_count: u16,
pub cell_content_start: u32,
pub fragmented_free_bytes: u8,
pub right_most_child: Option<PageNumber>,
}Expand description
Parsed B-tree page header.
Fields§
§header_offset: usizeOffset within the page where the B-tree page header begins (0 normally, 100 for page 1).
page_type: BTreePageTypePage type.
first_freeblock: u16Offset of the first freeblock in the freeblock list (0 if none).
cell_count: u16Number of cells on this page.
cell_content_start: u32Start of cell content area. A raw value of 0 decodes to 65536.
fragmented_free_bytes: u8Count of fragmented free bytes on this page.
right_most_child: Option<PageNumber>Right-most child page number for interior pages.
Implementations§
Source§impl BTreePageHeader
impl BTreePageHeader
Sourcepub const fn header_size(self) -> usize
pub const fn header_size(self) -> usize
Size of the B-tree page header in bytes (8 for leaf, 12 for interior).
Sourcepub fn parse(
page: &[u8],
page_size: PageSize,
reserved_per_page: u8,
is_page1: bool,
) -> Result<Self, BTreePageError>
pub fn parse( page: &[u8], page_size: PageSize, reserved_per_page: u8, is_page1: bool, ) -> Result<Self, BTreePageError>
Parse a B-tree page header from a page buffer.
Sourcepub fn parse_cell_pointers(
self,
page: &[u8],
page_size: PageSize,
reserved_per_page: u8,
) -> Result<Vec<u16>, BTreePageError>
pub fn parse_cell_pointers( self, page: &[u8], page_size: PageSize, reserved_per_page: u8, ) -> Result<Vec<u16>, BTreePageError>
Parse the cell pointer array for this page.
Sourcepub fn parse_freeblocks(
self,
page: &[u8],
page_size: PageSize,
reserved_per_page: u8,
) -> Result<Vec<Freeblock>, BTreePageError>
pub fn parse_freeblocks( self, page: &[u8], page_size: PageSize, reserved_per_page: u8, ) -> Result<Vec<Freeblock>, BTreePageError>
Traverse and parse the freeblock list for this page.
Sourcepub fn write_empty_leaf_table(
page: &mut [u8],
header_offset: usize,
usable_size: u32,
)
pub fn write_empty_leaf_table( page: &mut [u8], header_offset: usize, usable_size: u32, )
Write an empty leaf-table B-tree page header into a buffer.
Sets up the 8-byte B-tree page header for an empty leaf table page
(type 0x0D) with zero cells, suitable for sqlite_master or any
newly created table root page.
header_offset is the byte offset of the B-tree header within the
page buffer. For page 1 this must be DATABASE_HEADER_SIZE (100);
for every other page it should be 0.
usable_size equals page_size − reserved_per_page. The cell
content area offset is set to this value so that all usable space is
available for future cell insertions.
Sourcepub fn write_empty_leaf_index(
page: &mut [u8],
header_offset: usize,
usable_size: u32,
)
pub fn write_empty_leaf_index( page: &mut [u8], header_offset: usize, usable_size: u32, )
Initialize an empty leaf index page (type 0x0A) with zero cells,
suitable for a newly created index root page.
header_offset is the byte offset of the B-tree header within the
page buffer (0 for all non-page-1 pages).
usable_size equals page_size − reserved_per_page.
Trait Implementations§
Source§impl Clone for BTreePageHeader
impl Clone for BTreePageHeader
Source§fn clone(&self) -> BTreePageHeader
fn clone(&self) -> BTreePageHeader
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreimpl Copy for BTreePageHeader
Source§impl Debug for BTreePageHeader
impl Debug for BTreePageHeader
impl Eq for BTreePageHeader
Source§impl Hash for BTreePageHeader
impl Hash for BTreePageHeader
Source§impl PartialEq for BTreePageHeader
impl PartialEq for BTreePageHeader
Source§fn eq(&self, other: &BTreePageHeader) -> bool
fn eq(&self, other: &BTreePageHeader) -> bool
self and other values to be equal, and is used by ==.impl StructuralPartialEq for BTreePageHeader
Auto Trait Implementations§
impl Freeze for BTreePageHeader
impl RefUnwindSafe for BTreePageHeader
impl Send for BTreePageHeader
impl Sync for BTreePageHeader
impl Unpin for BTreePageHeader
impl UnsafeUnpin for BTreePageHeader
impl UnwindSafe for BTreePageHeader
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.