#![cfg_attr(not(feature = "std"), no_std)]
#![deny(clippy::all, clippy::pedantic, clippy::disallowed_methods)]
#![allow(
clippy::default_trait_access,
clippy::if_not_else,
clippy::iter_not_returning_iterator,
clippy::missing_errors_doc,
clippy::missing_panics_doc,
clippy::module_name_repetitions,
clippy::must_use_candidate,
clippy::needless_pass_by_value,
clippy::redundant_closure_for_method_calls,
clippy::similar_names,
clippy::too_many_lines,
clippy::unnecessary_wraps,
clippy::unreadable_literal
)]
extern crate alloc;
pub use db::{
Builder, CacheStats, CorruptPageInfo, Database, MultimapTableDefinition, MultimapTableHandle,
ReadOnlyDatabase, ReadableDatabase, RepairSession, StorageBackend, TableDefinition,
TableHandle, UntypedMultimapTableHandle, UntypedTableHandle, VerifyLevel, VerifyReport,
};
pub use error::{
BackendError, CommitError, CompactionError, DatabaseError, Error, SavepointError,
SetDurabilityError, StorageError, TableError, TransactionError,
};
#[cfg(feature = "std")]
pub use group_commit::{GroupCommitError, WriteBatch};
pub use legacy_tuple_types::Legacy;
pub use multimap_table::{
MultimapRange, MultimapTable, MultimapValue, ReadOnlyMultimapTable,
ReadOnlyUntypedMultimapTable, ReadableMultimapTable,
};
pub use table::{
ExtractIf, Range, ReadOnlyTable, ReadOnlyUntypedTable, ReadableTable, ReadableTableMetadata,
Table, TableStats,
};
pub use transactions::{DatabaseStats, Durability, ReadTransaction, WriteTransaction};
pub use tree_store::{
AccessGuard, AccessGuardMut, AccessGuardMutInPlace, CompressionConfig, RawEntryGuard,
RawEntryIter, Savepoint,
};
pub use types::{Key, MutInPlaceValue, TypeName, Value};
pub use blob_store::{
BlobCompactionReport, BlobId, BlobInput, BlobMeta, BlobReader, BlobRef, BlobStats, BlobWriter,
CausalEdge, CausalLink, CausalPath, ContentType, DedupStats, MAX_TAGS_PER_BLOB, NamespaceKey,
NamespaceVal, RelationType, Sha256Key, StoreOptions, TagKey, TemporalKey,
};
pub use merge::{
BitwiseOr, BytesAppend, FnMergeOperator, MergeOperator, NumericAdd, NumericMax, NumericMin,
merge_fn,
};
pub use temporal::HybridLogicalClock;
#[cfg(feature = "std")]
pub use ttl_table::{ReadOnlyTtlTable, TtlAccessGuard, TtlRange, TtlTable, TtlTableDefinition};
pub use vector::{BinaryQuantized, DynVec, FixedVec, SQVec, ScalarQuantized};
pub use vector_ops::{
DistanceMetric, Neighbor, cosine_distance, cosine_similarity, dequantize_scalar, dot_product,
euclidean_distance_sq, hamming_distance, l2_norm, l2_normalize, l2_normalized,
manhattan_distance, nearest_k, nearest_k_fixed, quantize_binary, quantize_scalar, read_f32_le,
sq_dot_product, sq_euclidean_distance_sq, write_f32_le,
};
pub type Result<T = (), E = StorageError> = core::result::Result<T, E>;
pub mod backends;
pub mod blob_store;
mod compat;
mod complex_types;
mod db;
pub mod error;
#[cfg(feature = "std")]
pub mod group_commit;
mod legacy_tuple_types;
pub mod merge;
mod multimap_table;
mod sealed;
mod table;
pub mod temporal;
mod transaction_tracker;
mod transactions;
mod tree_store;
#[cfg(feature = "std")]
pub mod ttl_table;
mod tuple_types;
mod types;
pub mod vector;
pub mod vector_ops;
#[cfg(test)]
fn create_tempfile() -> tempfile::NamedTempFile {
if cfg!(target_os = "wasi") {
tempfile::NamedTempFile::new_in("/tmp").unwrap()
} else {
tempfile::NamedTempFile::new().unwrap()
}
}