extern crate self as icydb;
#[doc(hidden)]
pub use icydb_core::types;
pub mod value {
pub use icydb_core::value::{
InputValue, InputValueEnum, OutputValue, OutputValueEnum, ValueTag,
};
pub use icydb_model::{Collection, MapCollection};
}
#[doc(hidden)]
pub mod metrics {
pub use icydb_core::metrics::{
CompactEntityMetrics, CompactEventCounters, CompactMetric, CompactMetricsReport,
EntitySummary, EventCounters, EventOps, EventReport, MetricRatio, MetricsSink,
compact_metric_code, compact_metrics_report, metrics_report, metrics_reset_all,
};
}
#[cfg(not(target_arch = "wasm32"))]
pub mod build {
pub use icydb_config::{
ConfigError, GeneratedBuildTarget, GeneratedCanisterConfig, GeneratedIcydbConfig,
GeneratedMetricsMode, GeneratedMetricsPolicy, GeneratedSqlIntrospectionPolicy,
GeneratedSqlUpdatePolicy, ResolvedIcydbConfig, build_configured_canister,
emit_config_for_build_script, emit_configured_canister_for_build_script,
load_resolved_icydb_toml, resolve_existing_icydb_toml,
};
}
pub mod db;
pub mod diagnostic {
pub use icydb_diagnostic_code::{
Diagnostic, DiagnosticCode, DiagnosticDetail, ErrorClass, ErrorCode, ErrorOrigin,
QueryErrorKind, QueryProjectionCode, QueryReadAdmissionCode, QueryResultShapeCode,
RuntimeBoundaryCode, RuntimeErrorKind, SchemaDdlAdmissionCode, SqlFeatureCode,
SqlLoweringCode, SqlSurfaceMismatchCode, SqlWriteBoundaryCode,
};
}
mod error;
pub mod traits;
pub use error::{
ConstraintDiagnostic, ConstraintDiagnosticContext, ConstraintDiagnosticKind,
ConstraintValuePath, ConstraintValuePathComponent, Error, ErrorKind, ErrorOrigin,
QueryErrorKind, RuntimeErrorKind,
};
pub use icydb_diagnostic_code::ErrorCode;
#[doc(hidden)]
pub mod __macro {
pub use crate::db::{
TypedFieldBindingRequest, TypedFieldType, execute_generated_storage_report,
};
pub use ic_memory::{
bootstrap_default_memory_manager, ic_memory_declaration, ic_memory_key, ic_memory_range,
};
pub use icydb_core::db::{
CompositePrimaryKeyValue, DataStore, DbSession as CoreDbSession, EntityKeyBytes,
EntityKeyBytesError, IndexStore, JournalTailStore, KeyValueCodec, PrimaryKeyDecode,
PrimaryKeyEncode, PrimaryKeyEncodeError, PrimaryKeyValue, SchemaStore,
StoreAllocationIdentities, StoreAllocationIdentity, StoreRegistry,
StoreRuntimeStorageCapabilities, validate_entity_key_bytes_buffer,
};
#[cfg(feature = "sql")]
pub use icydb_core::db::{sql_statement_dispatch, sql_statement_entity_name};
pub use icydb_core::error::{ErrorClass, ErrorOrigin, InternalError};
pub use icydb_core::traits::{CanisterKind, Path};
pub use icydb_core::value::Value;
pub use icydb_schema::{DEFAULT_BIG_INT_MAX_BYTES, ScalarType};
}
#[doc(hidden)]
pub mod __reexports {
pub use candid;
pub use ic_cdk;
}
pub mod prelude {
#[cfg(feature = "query")]
pub use crate::db::{
query,
query::{
FieldRef, FilterExpr, FilterValue, OrderExpr, OrderTerm, asc, count, count_by, desc,
exists, field, first, last, max, max_by, min, min_by, sum,
},
};
pub use crate::{
db,
traits::{Collection as _, Inner as _, MapCollection as _, Path as _},
types::*,
value::{InputValue, OutputValue},
};
pub use candid::CandidType;
pub use serde::{Deserialize, Serialize};
}
pub const VERSION: &str = env!("CARGO_PKG_VERSION");
#[macro_export]
macro_rules! start {
() => {
include!(concat!(env!("OUT_DIR"), "/actor.rs"));
};
}
#[macro_export]
#[expect(clippy::crate_in_macro_def)]
macro_rules! db {
() => {
crate::db()
};
}
#[cfg(all(test, not(target_arch = "wasm32")))]
mod tests {
use crate::build;
struct ModelWrapper(u64);
impl icydb_model::Inner<u64> for ModelWrapper {
fn inner(&self) -> &u64 {
&self.0
}
fn into_inner(self) -> u64 {
self.0
}
}
#[test]
fn build_facade_exports_configured_entrypoint_metadata() {
fn assert_model_inner<T: crate::traits::Inner<u64>>() {}
assert_eq!(
build::GeneratedBuildTarget::default(),
build::GeneratedBuildTarget::Unknown
);
assert_model_inner::<ModelWrapper>();
let wrapper = ModelWrapper(7);
assert_eq!(*crate::traits::Inner::inner(&wrapper), 7);
assert_eq!(crate::traits::Inner::into_inner(wrapper), 7);
std::hint::black_box(
build_facade_macros_resolve as fn() -> Result<(), Box<dyn std::error::Error>>,
);
}
fn build_facade_macros_resolve() -> Result<(), Box<dyn std::error::Error>> {
build::build_configured_canister!((), "crate::Canister", "canister");
Ok(())
}
}