Skip to main content

toolkit_contract/
contract.rs

1use crate::descriptor::ContractDescriptor;
2use crate::ir::contract::ContractIr;
3
4/// Connects a `dyn Trait` type to its contract descriptor and IR.
5pub trait Contract: Send + Sync + 'static {
6    /// Returns the static descriptor for fast runtime lookups.
7    fn descriptor() -> &'static ContractDescriptor;
8
9    /// Builds the full Contract IR.
10    fn contract_ir() -> ContractIr;
11}
12
13pub use Contract as ServiceContract;