twine_models/lib.rs
1//! # Twine Models
2//!
3//! Domain-specific models and model-building tools for
4//! [Twine](https://github.com/isentropic-dev/twine).
5//!
6//! This crate provides opinionated model implementations and supporting
7//! utilities organized around engineering domains.
8//!
9//! ## Crate layout
10//!
11//! - [`models`]: Domain-specific [`twine_core::Model`] implementations.
12//! - [`support`]: Supporting utilities used by models.
13//!
14//! ## Utility code lifecycle
15//!
16//! Modules in [`support`] are part of the public API because they're useful,
17//! but their APIs are not stable. Breaking changes may occur as needed.
18//!
19//! Utility code in this crate follows a natural progression as needs emerge:
20//!
21//! 1. **Model-specific**: Starts in a model's internal `core` module
22//! 2. **Domain-specific**: If useful across models in a domain (e.g., `turbomachinery`),
23//! it moves to a domain-level support module
24//! 3. **Crate-level**: If useful across multiple domains or potentially useful
25//! outside this crate, it moves to [`support`]
26//! 4. **Standalone**: If broadly useful and stable, it may become its own crate
27//! (and be removed from here in a future release)
28//!
29//! Note: Only utilities at the crate-level (in [`support`]) are part of the public API.
30//! Model-specific and domain-specific utility code remains private.
31
32pub mod models;
33pub mod support;