Crate spacetimedb_table

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.
fixed_bit_set
indexes
Provides primitive types and definitions around bytes, row hashes, (page) sizes, offsets, and indices.
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.
page_pool
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.
static_bsatn_validator
To efficiently implement a fast-path BSATN -> BFLATN, we use a StaticLayout but in reverse of the read path. This however leaves us with no way to validate that the BSATN satisfies the row type of a given table.
static_layout
This module implements a fast path for converting certain row types between BFLATN <-> BSATN.
table
table_index
Table indexes with specialized key types.
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).