#![warn(unreachable_pub)]
extern crate self as icydb;
#[macro_use]
pub(crate) mod scalar_registry;
pub mod db;
pub mod error;
pub mod metrics;
pub mod model;
pub mod sanitize;
pub mod traits;
pub mod types;
pub mod validate;
pub mod value;
pub mod visitor;
#[cfg(test)]
pub(crate) mod testing;
pub const MAX_INDEX_FIELDS: usize = 4;
pub mod prelude {
pub use crate::{
model::{entity::EntityModel, index::IndexModel},
traits::{EntityKind, Path},
value::{InputValue, OutputValue},
};
}
#[doc(hidden)]
pub mod __macro {
pub use crate::db::{
GeneratedStructuralEnumPayload, GeneratedStructuralMapPayloadSlices, PersistedScalar,
ScalarSlotValueRef, ScalarValueRef,
};
pub use crate::error::InternalError;
pub use crate::traits::{
EnumValue, FieldProjection, PersistedByKindCodec, PersistedFieldMetaCodec,
PersistedStructuredFieldCodec, RuntimeValueDecode, RuntimeValueEncode, RuntimeValueKind,
RuntimeValueMeta, runtime_value_btree_map_from_value, runtime_value_btree_set_from_value,
runtime_value_collection_to_value, runtime_value_from_value, runtime_value_from_vec_into,
runtime_value_from_vec_into_btree_map, runtime_value_from_vec_into_btree_set,
runtime_value_into, runtime_value_map_collection_to_value, runtime_value_to_value,
runtime_value_vec_from_value,
};
pub use crate::value::{InputValue, Value, ValueEnum};
#[doc(hidden)]
#[must_use]
pub fn encode_generated_structural_text_payload_bytes(value: &str) -> Vec<u8> {
crate::db::encode_generated_structural_text_payload_bytes(value)
}
#[doc(hidden)]
#[must_use]
pub fn encode_generated_structural_list_payload_bytes(items: &[&[u8]]) -> Vec<u8> {
crate::db::encode_generated_structural_list_payload_bytes(items)
}
#[doc(hidden)]
#[must_use]
pub fn encode_generated_structural_map_payload_bytes(entries: &[(&[u8], &[u8])]) -> Vec<u8> {
crate::db::encode_generated_structural_map_payload_bytes(entries)
}
#[doc(hidden)]
#[must_use]
pub fn encode_generated_structural_enum_payload_bytes(
variant: &str,
path: Option<&str>,
payload: Option<&[u8]>,
) -> Vec<u8> {
crate::db::encode_generated_structural_enum_payload_bytes(variant, path, payload)
}
#[doc(hidden)]
pub fn decode_generated_structural_text_payload_bytes(
raw_bytes: &[u8],
) -> Result<String, crate::error::InternalError> {
crate::db::decode_generated_structural_text_payload_bytes(raw_bytes)
}
#[doc(hidden)]
pub fn decode_generated_structural_list_payload_bytes(
raw_bytes: &[u8],
) -> Result<Vec<&[u8]>, crate::error::InternalError> {
crate::db::decode_generated_structural_list_payload_bytes(raw_bytes)
}
#[doc(hidden)]
pub fn decode_generated_structural_map_payload_bytes(
raw_bytes: &[u8],
) -> Result<crate::db::GeneratedStructuralMapPayloadSlices<'_>, crate::error::InternalError>
{
crate::db::decode_generated_structural_map_payload_bytes(raw_bytes)
}
#[doc(hidden)]
pub fn decode_generated_structural_enum_payload_bytes(
raw_bytes: &[u8],
) -> Result<crate::db::GeneratedStructuralEnumPayload<'_>, crate::error::InternalError> {
crate::db::decode_generated_structural_enum_payload_bytes(raw_bytes)
}
#[doc(hidden)]
pub fn generated_persisted_structured_payload_decode_failed(
detail: impl std::fmt::Display,
) -> crate::error::InternalError {
crate::db::generated_persisted_structured_payload_decode_failed(detail)
}
#[doc(hidden)]
pub fn encode_persisted_custom_many_slot_payload<T>(
value: &[T],
field_name: &'static str,
) -> Result<Vec<u8>, crate::error::InternalError>
where
T: crate::traits::PersistedStructuredFieldCodec + Clone,
{
crate::db::encode_persisted_custom_many_slot_payload(value, field_name)
}
#[doc(hidden)]
pub fn decode_persisted_custom_many_slot_payload<T>(
bytes: &[u8],
field_name: &'static str,
) -> Result<Vec<T>, crate::error::InternalError>
where
T: crate::traits::PersistedStructuredFieldCodec,
{
crate::db::decode_persisted_custom_many_slot_payload(bytes, field_name)
}
#[doc(hidden)]
pub fn encode_persisted_custom_slot_payload<T>(
value: &T,
field_name: &'static str,
) -> Result<Vec<u8>, crate::error::InternalError>
where
T: crate::traits::PersistedStructuredFieldCodec,
{
crate::db::encode_persisted_custom_slot_payload(value, field_name)
}
#[doc(hidden)]
pub fn decode_persisted_custom_slot_payload<T>(
bytes: &[u8],
field_name: &'static str,
) -> Result<T, crate::error::InternalError>
where
T: crate::traits::PersistedStructuredFieldCodec,
{
crate::db::decode_persisted_custom_slot_payload(bytes, field_name)
}
#[doc(hidden)]
pub fn encode_persisted_option_scalar_slot_payload<T>(
value: &Option<T>,
field_name: &'static str,
) -> Result<Vec<u8>, crate::error::InternalError>
where
T: PersistedScalar,
{
crate::db::encode_persisted_option_scalar_slot_payload(value, field_name)
}
#[doc(hidden)]
pub fn decode_persisted_option_scalar_slot_payload<T>(
bytes: &[u8],
field_name: &'static str,
) -> Result<Option<T>, crate::error::InternalError>
where
T: PersistedScalar,
{
crate::db::decode_persisted_option_scalar_slot_payload(bytes, field_name)
}
#[doc(hidden)]
pub fn encode_persisted_scalar_slot_payload<T>(
value: &T,
field_name: &'static str,
) -> Result<Vec<u8>, crate::error::InternalError>
where
T: PersistedScalar,
{
crate::db::encode_persisted_scalar_slot_payload(value, field_name)
}
#[doc(hidden)]
pub fn decode_persisted_scalar_slot_payload<T>(
bytes: &[u8],
field_name: &'static str,
) -> Result<T, crate::error::InternalError>
where
T: PersistedScalar,
{
crate::db::decode_persisted_scalar_slot_payload(bytes, field_name)
}
#[doc(hidden)]
pub fn encode_persisted_slot_payload_by_kind<T>(
value: &T,
kind: crate::model::field::FieldKind,
field_name: &'static str,
) -> Result<Vec<u8>, crate::error::InternalError>
where
T: crate::traits::PersistedByKindCodec,
{
crate::db::encode_persisted_slot_payload_by_kind(value, kind, field_name)
}
#[doc(hidden)]
pub fn decode_persisted_slot_payload_by_kind<T>(
bytes: &[u8],
kind: crate::model::field::FieldKind,
field_name: &'static str,
) -> Result<T, crate::error::InternalError>
where
T: crate::traits::PersistedByKindCodec,
{
crate::db::decode_persisted_slot_payload_by_kind(bytes, kind, field_name)
}
#[doc(hidden)]
pub fn decode_persisted_option_slot_payload_by_kind<T>(
bytes: &[u8],
kind: crate::model::field::FieldKind,
field_name: &'static str,
) -> Result<Option<T>, crate::error::InternalError>
where
T: crate::traits::PersistedByKindCodec,
{
crate::db::decode_persisted_option_slot_payload_by_kind(bytes, kind, field_name)
}
#[doc(hidden)]
pub fn encode_persisted_option_slot_payload_by_meta<T>(
value: &Option<T>,
field_name: &'static str,
) -> Result<Vec<u8>, crate::error::InternalError>
where
T: crate::traits::PersistedFieldMetaCodec,
{
crate::db::encode_persisted_option_slot_payload_by_meta(value, field_name)
}
#[doc(hidden)]
pub fn decode_persisted_option_slot_payload_by_meta<T>(
bytes: &[u8],
field_name: &'static str,
) -> Result<Option<T>, crate::error::InternalError>
where
T: crate::traits::PersistedFieldMetaCodec,
{
crate::db::decode_persisted_option_slot_payload_by_meta(bytes, field_name)
}
#[doc(hidden)]
pub fn encode_persisted_slot_payload_by_meta<T>(
value: &T,
field_name: &'static str,
) -> Result<Vec<u8>, crate::error::InternalError>
where
T: crate::traits::PersistedFieldMetaCodec,
{
crate::db::encode_persisted_slot_payload_by_meta(value, field_name)
}
#[doc(hidden)]
pub fn decode_persisted_slot_payload_by_meta<T>(
bytes: &[u8],
field_name: &'static str,
) -> Result<T, crate::error::InternalError>
where
T: crate::traits::PersistedFieldMetaCodec,
{
crate::db::decode_persisted_slot_payload_by_meta(bytes, field_name)
}
}