torvyn_types/lib.rs
1//! # torvyn-types
2//!
3//! Shared foundation types for the Torvyn reactive streaming runtime.
4//!
5//! This crate is the universal leaf dependency — every other Torvyn crate
6//! imports from it. It contains identity types, error types, domain enums,
7//! state machines, shared records, traits, and constants.
8//!
9//! ## Design principles
10//! - **Zero internal dependencies**: this crate depends only on `std` and `serde`.
11//! - **Zero unsafe code**: `#![forbid(unsafe_code)]`.
12//! - **Complete documentation**: `#![deny(missing_docs)]`.
13//! - **Minimal footprint**: compiles in under 2 seconds.
14//!
15//! ## Quick reference
16//!
17//! | Category | Key types |
18//! |----------|-----------|
19//! | Identity | [`ComponentTypeId`], [`ComponentInstanceId`], [`ComponentId`], [`FlowId`], [`StreamId`], [`ResourceId`], [`BufferHandle`], [`TraceId`], [`SpanId`] |
20//! | Errors | [`ProcessError`], [`TorvynError`], [`ContractError`], [`LinkError`], [`ResourceError`], [`ReactorError`], [`ConfigError`], [`SecurityError`], [`PackagingError`] |
21//! | Enums | [`ComponentRole`], [`BackpressureSignal`], [`BackpressurePolicy`], [`ObservabilityLevel`], [`Severity`], [`CopyReason`] |
22//! | State machines | [`FlowState`], [`ResourceState`], [`InvalidTransition`] |
23//! | Records | [`ElementMeta`], [`TransferRecord`], [`TraceContext`] |
24//! | Traits | [`EventSink`], [`NoopEventSink`] |
25
26#![forbid(unsafe_code)]
27#![deny(missing_docs)]
28#![deny(rustdoc::broken_intra_doc_links)]
29
30// Module declarations
31mod constants;
32mod enums;
33mod error;
34mod identity;
35mod records;
36mod state;
37mod timestamp;
38mod traits;
39
40// --- Identity types ---
41pub use identity::{
42 BufferHandle, ComponentId, ComponentInstanceId, ComponentTypeId, FlowId, ResourceId, SpanId,
43 StreamId, TraceId,
44};
45
46// --- Error types ---
47pub use error::{
48 ConfigError, ContractError, EngineError, LinkError, PackagingError, ProcessError,
49 ProcessErrorKind, ReactorError, ResourceError, SecurityError, TorvynError,
50};
51
52// --- Domain enums ---
53pub use enums::{
54 BackpressurePolicy, BackpressureSignal, ComponentRole, CopyReason, ObservabilityLevel, Severity,
55};
56
57// --- State machines ---
58pub use state::{FlowState, InvalidTransition, ResourceState};
59
60// --- Records ---
61pub use records::{ElementMeta, TraceContext, TransferRecord};
62
63// --- Traits ---
64pub use traits::{EventSink, InvocationStatus, NoopEventSink};
65
66// --- Constants ---
67pub use constants::*;
68
69// --- Timestamp utilities ---
70pub use timestamp::current_timestamp_ns;