Skip to main content

icydb_config/
lib.rs

1//! Shared host-side support for `icydb.toml` project configuration.
2//!
3//! This crate owns existing config discovery, TOML parsing, and validation for
4//! build scripts and CLI commands. Runtime crates and generated actor code
5//! should consume only the generated actor source emitted by `icydb-build`.
6
7mod emit;
8mod error;
9mod model;
10mod parse;
11mod resolve;
12
13pub use emit::emit_config_for_build_script;
14pub use error::ConfigError;
15pub use model::{
16    GeneratedBuildTarget, GeneratedCanisterConfig, GeneratedIcydbConfig,
17    GeneratedSqlIntrospectionPolicy, GeneratedSqlUpdatePolicy, ResolvedIcydbConfig,
18};
19pub use parse::load_resolved_icydb_toml;
20pub use resolve::resolve_existing_icydb_toml;
21
22/// Standard IcyDB project configuration filename.
23pub const ICYDB_CONFIG_FILE_NAME: &str = "icydb.toml";
24/// Build-script environment variable used to resolve target-sensitive defaults.
25pub const ICYDB_BUILD_TARGET_ENV: &str = "ICYDB_BUILD_TARGET";
26const CONFIG_PATH_ENV: &str = "ICYDB_CONFIG_PATH";
27
28#[cfg(test)]
29mod tests;