1pub mod audit;
13pub mod batch;
14pub mod codec;
15pub mod context;
16pub mod envelope;
17pub mod error;
18pub mod events;
19pub mod json;
20pub mod page;
21pub mod projection;
22pub mod rpc;
23pub mod schema;
24pub mod transport;
25pub mod validators;
26pub mod value;
27
28#[cfg(all(feature = "decimal-rust-decimal", feature = "decimal-bigdecimal"))]
37compile_error!(
38 "cratestack: features `decimal-rust-decimal` and `decimal-bigdecimal` are mutually exclusive"
39);
40
41#[cfg(not(any(feature = "decimal-rust-decimal", feature = "decimal-bigdecimal")))]
42compile_error!(
43 "cratestack: enable exactly one Decimal backend feature (`decimal-rust-decimal` or `decimal-bigdecimal`)"
44);
45
46#[cfg(feature = "decimal-rust-decimal")]
47pub type Decimal = rust_decimal::Decimal;
48
49#[cfg(feature = "decimal-bigdecimal")]
50compile_error!(
51 "cratestack: the `decimal-bigdecimal` backend is reserved but not yet implemented; use `decimal-rust-decimal` for now"
52);
53
54pub type CoolBody = bytes::Bytes;
56
57pub use audit::{
61 AuditActor, AuditEvent, AuditOperation, AuditSink, MulticastAuditSink, NoopAuditSink,
62 TransactionIsolation,
63};
64pub use batch::{
65 BATCH_MAX_ITEMS, BatchItemError, BatchItemResult, BatchItemStatus, BatchRequest, BatchResponse,
66 BatchSummary, find_duplicate_position,
67};
68pub use codec::{CoolCodec, CoolEnvelope, NoEnvelope};
69pub use context::{
70 AuthProvider, CoolAuthIdentity, CoolContext, PrincipalContext, PrincipalFacet, RequestContext,
71};
72pub use envelope::{
73 HmacEnvelope, InMemoryNonceStore, KeyProvider, NonceStore, SealedEnvelope, StaticKeyProvider,
74};
75pub use error::{CoolError, CoolErrorResponse, DbErrorInfo, parse_cuid};
76pub use events::{
77 CoolEventBus, CoolEventEnvelope, CoolEventFuture, ModelEvent, ModelEventKind, event_topic,
78 parse_emit_attribute,
79};
80pub use json::Json;
81pub use page::{Page, PageInfo};
82pub use projection::ProjectionDecoder;
83pub use schema::{
84 Attribute, AuthBlock, ConfigBlock, ConfigEntry, Datasource, EnumDecl, EnumVariant, Field,
85 MixinDecl, Model, OwnedSchemaSummary, Procedure, ProcedureArg, ProcedureKind, Schema,
86 SchemaSummary, SelectionQuery, SourceSpan, TransportStyle, TypeArity, TypeDecl, TypeRef, View,
87 ViewSource,
88};
89pub use transport::{
90 OpDescriptor, OpKind, RouteTransportCapabilities, RouteTransportDescriptor,
91 canonical_request_string,
92};
93pub use validators::{
94 validate_email, validate_iso4217, validate_length, validate_range_decimal, validate_range_i64,
95 validate_uri,
96};
97pub use value::Value;