daedalus_data/
lib.rs

1//! Data model and descriptors for the Daedalus pipeline.
2//!
3//! This crate is the single source of truth for `Value`, `ValueType`, and
4//! `TypeExpr`, plus descriptors, codecs, converters, and units. It is feature-
5//! light: schema/proto emission and GPU integration are feature-gated. No
6//! concrete GPU backend types live here; only trait/handle shims.
7//! Deterministic ordering is required so planner/runtime goldens stay stable.
8//!
9//! # Feature Matrix (compile-checked)
10//! - `default` (includes `json`): core types, descriptors, converters, units, JSON codec.
11//! - `json`: enable JSON codec/base64 support (on by default).
12//! - `gpu`: GPU handle shims; no concrete backend types.
13//! - `async`: async resolver wrappers.
14//! - `schema`: JSON Schema emission.
15//! - `proto`: proto3 type emission.
16
17pub mod convert;
18pub mod descriptor;
19pub mod errors;
20pub mod model;
21pub mod typing;
22pub mod units;
23
24#[cfg(feature = "json")]
25pub mod json;
26
27#[cfg(feature = "proto")]
28pub mod proto;
29#[cfg(feature = "schema")]
30pub mod schema;
31
32#[cfg(feature = "gpu")]
33pub mod gpu;
34
35pub mod prelude {
36    pub use crate::descriptor::{
37        DataDescriptor, DescriptorId, DescriptorVersion, GpuHints, MemoryLocation,
38    };
39    pub use crate::errors::{DataError, DataErrorCode, DataResult};
40    pub use crate::model::{EnumValue, StructFieldValue, TypeExpr, Value, ValueRef, ValueType};
41}