Crate spacetimedb_table

Source
Expand description

The spacetimedb_table crate provides a Table implementation and various ways to interact with a table.

Modules§

bflatn_from
Provides the function [read_row_from_page(ser, page, fixed_offset, ty)] which serializes value = page.get_row_data(fixed_offset, fixed_row_size) typed at ty and associated var len objects in value into the serializer ser.
bflatn_to
Provides the functions [write_row_to_pages(pages, blob_store, ty, val)] and [write_row_to_page(page, blob_store, visitor, ty, val)] which write val: ProductValue typed at ty to page and pages respectively.
blob_store
Provides the interface BlobStore that tables use to talk to a blob store engine for large var-len objects.
eq
Provides the function [eq_row_in_page(page_a, page_b, offset_a, offset_b, ty)] which, for value_a/b = page_a/b.get_row_data(offset_a/b, fixed_row_size) typed at ty, compares value_a and value_b for equality.
indexes
Provides primitive types and definitions around bytes, row hashes, (page) sizes, offsets, and indices.
layout
Defines Layout, which encompasses the fixed size and alignment of an object, e.g., a row, or a column, or some other sub-division of a row.
page
Provides a Page abstraction that stores rows and an associated header necessary for the page to work. Consult the documentation of this type for a list of operations and a description of how page work.
pages
Provides Pages, a page manager dealing with Pages as a collection.
pointer_map
Provides PointerMap that deals with the association of a RowHash to a RowPointer through operations insert and delete.
read_column
Provides a trait ReadColumn for extracting a single column from a crate::table::RowRef. This is desirable as frequently, e.g. when evaluating filtered queries, we are interested in only a single column (or a small set of columns), and would like to avoid the allocation required by a ProductValue.
row_hash
Provides the function [hash_row_in_page(hasher, page, fixed_offset, ty)] which hashes value = page.get_row_data(fixed_offset, fixed_row_size) typed at ty and associated var len objects in value into hasher.
row_type_visitor
A VarLenMembers visitor for [AlgebraicType], supporting any non-recursive AlgebraicType, including sums and products.
table
var_len
Provides the definitions of VarLenRef, VarLenGranule, and VarLenMembers.

Macros§

static_assert_align
Asserts that $ty is aligned at $align bytes in static_assert_align($ty, $align).
static_assert_size
Asserts that $ty is $size bytes in static_assert_size($ty, $size).