Expand description
Schema types for roam RPC service definitions.
§Design Philosophy
This crate uses facet::Shape directly for type information rather than
defining a parallel type system. This means:
- No
TypeDetail— We use&'static Shapefrom facet instead - Full type introspection — Shape provides complete type information
- Zero conversion overhead — Types are described by their Shape directly
For type-specific queries (is this a stream? what are the struct fields?),
use the facet_core API to inspect the Shape.
Structs§
- ArgDetail
- A single argument in a method signature.
- Enum
Info - Information about an enum type.
- Method
Detail - A single method in a service definition.
- Method
Summary - Summary information about a method (for listings/discovery).
- Service
Detail - A complete service definition with all its methods.
- Service
Summary - Summary information about a service (for listings/discovery).
- Struct
Info - Information about a struct type.
Enums§
- Mismatch
Explanation - Explanation of why a method call mismatched.
- Shape
Kind - Classification of a Shape for codegen purposes.
- Variant
Kind - Information about an enum variant for codegen.
Functions§
- classify_
shape - Classify a Shape into a ShapeKind for codegen.
- classify_
variant - Classify an enum variant.
- contains_
stream - Recursively check if a shape or any of its type parameters contains a stream.
- fully_
qualified_ type_ path - Returns the fully qualified type path, e.g. “std::collections::HashMap<K, V>”.
- is_
bytes - Check if a shape represents bytes (
Vec<u8>or&[u8]). - is_rx
- Check if a shape represents an Rx (callee→caller) stream.
- is_
stream - Check if a shape represents any streaming type (Tx or Rx).
- is_tx
- Check if a shape represents a Tx (caller→callee) stream.