Skip to main content

sim_lib_class/
lib.rs

1//! Concrete language-neutral class semantics for SIM.
2//!
3//! This crate deliberately begins with an executable semantic boundary. The
4//! inventory prevents neighboring object models from being mistaken for class
5//! inheritance, while characterization scenarios freeze the behavior that the
6//! checked descriptor implementation must preserve.
7
8mod cache;
9mod characterization;
10mod descriptor;
11mod inventory;
12mod lineage;
13mod protocol;
14
15pub use cache::{
16    CacheAccess, CacheAccessKind, CacheError, CacheRevisions, ClassCache, ClassRoot,
17    DerivedClassView, SnapshotGraph,
18};
19pub use characterization::{
20    CharacterizationScenario, ExpectedOutcome, FailureMode, ScenarioKind,
21    characterization_scenarios, scenario_content_id,
22};
23pub use descriptor::{
24    ClassDescriptor, ClassDescriptorError, ClassDescriptorInput, ClassIdentity, DeclaredParent,
25    MemberShape, OpenMetadataEntry, ReadConstruction,
26};
27pub use inventory::{
28    CandidateDisposition, CandidateModel, ExclusionReason, ParentMeaning, SemanticDomain,
29    candidate_inventory, exclusion_ledger, non_goals,
30};
31pub use lineage::{
32    C3Policy, DeclaredOrderPolicy, LineageBudget, LineageError, LineageGraph, LineagePolicy,
33    PrecedenceConstraint,
34};
35pub use protocol::{ClassConstructor, DescriptorClass, SubclassEvidence, SubclassQuery};
36
37#[cfg(test)]
38mod tests;