Crate roam_schema

Crate roam_schema 

Source
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 Shape from 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.
EnumInfo
Information about an enum type.
MethodDetail
A single method in a service definition.
MethodSummary
Summary information about a method (for listings/discovery).
ServiceDetail
A complete service definition with all its methods.
ServiceSummary
Summary information about a service (for listings/discovery).
StructInfo
Information about a struct type.

Enums§

MismatchExplanation
Explanation of why a method call mismatched.
ShapeKind
Classification of a Shape for codegen purposes.
VariantKind
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.