1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
#![allow(incomplete_features)]
#![warn(
missing_debug_implementations,
missing_docs,
rust_2018_idioms,
unreachable_pub
)]
#![feature(arc_unwrap_or_clone)]
#![feature(lazy_cell)]
#![feature(trait_upcasting)]
#![feature(type_alias_impl_trait)]
#![allow(rustdoc::private_intra_doc_links)]
// TODO: Remove this later.
#![allow(rustdoc::broken_intra_doc_links)]
#![allow(unused_variables)]
#![allow(dead_code)]
//! FoundationDB Record Layer
//!
//! **This crate is work-in-progress.**
//!
//! At this time, the thinking with Record Layer is that it will
//! consist of a schema (`RecordSchema`) containing multiple
//! `RecordEntity`s.
//!
//! Each `RecordEntity` will map to seralized byte array such as a
//! Protobuf Message and will have a primary key tuple and optionally
//! one or more secondary indexes.
//!
//! This crate will provide:
//! - APIs for Schema and Index management.
//!
//! - Ensure transactionally consistent secondary indexes during
//! inserts, updates and deletes.
//!
//! - A very simple API for querying based on primary key and
//! secondary indexes.
//!
//! In addition, a simple transactionally consistent queuing system
//! similar to QuiCK will also be implemented.
//!
//! *There are no plans to implement a query planner or other higher
//! level database features.*
mod raw_record;
mod record_context;
mod record_version;
pub(crate) mod split_helper;
pub mod cursor;
pub mod error;
pub mod key_expression;
pub mod range;
pub mod scan;
#[doc(hidden)]
pub mod test;
pub use crate::record_context::RecordContext;
pub use crate::record_version::RecordVersion;