Skip to main content

IntoSchema

Trait IntoSchema 

Source
pub trait IntoSchema {
    // Required methods
    fn type_id() -> TypeId;
    fn register_in(builder: &mut SchemaBuilder) -> SchemaType;
    fn to_value(&self) -> SchemaValue;
}
Expand description

Convert a Rust type into a self-contained schema graph and a SchemaValue tree.

The Rust-SDK default type_id() is derived from core::any::type_name by replacing :: with . so the identifier matches the language-independent dotted-FQN form (a.b.c.Xyz, see §4.20 of the value-type spec). Generic instantiations keep the angle brackets and normalize their contents the same way: my_crate::Container<my_crate::user::Profile> becomes my_crate.Container<my_crate.user.Profile>.

#[schema(named = "shared.foo")] overrides the base name. For a generic type the derive auto-suffixes the explicit name with the resolved arguments so each instantiation gets its own definition.

Required Methods§

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementations on Foreign Types§

Source§

impl IntoSchema for ()

Source§

impl IntoSchema for DateTime<Utc>

Source§

impl IntoSchema for Duration

Source§

impl IntoSchema for PathBuf

Source§

impl IntoSchema for String

Source§

impl IntoSchema for bool

Source§

impl IntoSchema for char

Source§

impl IntoSchema for f32

Source§

impl IntoSchema for f64

Source§

impl IntoSchema for i8

Source§

impl IntoSchema for i16

Source§

impl IntoSchema for i32

Source§

impl IntoSchema for i64

Source§

impl IntoSchema for str

str schema is identical to String, so a &str produces the same schema graph and value as an owned String. This makes string literals usable directly as agent parameters without an explicit .to_string().

Source§

impl IntoSchema for u8

Source§

impl IntoSchema for u16

Source§

impl IntoSchema for u32

Source§

impl IntoSchema for u64

Source§

impl IntoSchema for usize

Source§

impl<K, V> IntoSchema for BTreeMap<K, V>
where K: IntoSchema, V: IntoSchema,

Source§

impl<K, V> IntoSchema for HashMap<K, V>
where K: IntoSchema, V: IntoSchema,

Source§

impl<T0, T1, T2, T3, T4, T5, T6, T7> IntoSchema for (T0, T1, T2, T3, T4, T5, T6, T7)

Source§

impl<T0, T1, T2, T3, T4, T5, T6> IntoSchema for (T0, T1, T2, T3, T4, T5, T6)
where T0: IntoSchema, T1: IntoSchema, T2: IntoSchema, T3: IntoSchema, T4: IntoSchema, T5: IntoSchema, T6: IntoSchema,

Source§

impl<T0, T1, T2, T3, T4, T5> IntoSchema for (T0, T1, T2, T3, T4, T5)
where T0: IntoSchema, T1: IntoSchema, T2: IntoSchema, T3: IntoSchema, T4: IntoSchema, T5: IntoSchema,

Source§

impl<T0, T1, T2, T3, T4> IntoSchema for (T0, T1, T2, T3, T4)
where T0: IntoSchema, T1: IntoSchema, T2: IntoSchema, T3: IntoSchema, T4: IntoSchema,

Source§

impl<T0, T1, T2, T3> IntoSchema for (T0, T1, T2, T3)
where T0: IntoSchema, T1: IntoSchema, T2: IntoSchema, T3: IntoSchema,

Source§

impl<T0, T1, T2> IntoSchema for (T0, T1, T2)
where T0: IntoSchema, T1: IntoSchema, T2: IntoSchema,

Source§

impl<T0, T1> IntoSchema for (T0, T1)
where T0: IntoSchema, T1: IntoSchema,

Source§

impl<T0> IntoSchema for (T0,)
where T0: IntoSchema,

Source§

impl<T, E> IntoSchema for Result<T, E>
where T: IntoSchema, E: IntoSchema,

Source§

impl<T> IntoSchema for &T
where T: IntoSchema + ?Sized,

Forward IntoSchema through shared references so that &T values (most commonly &str string literals) can be used wherever an IntoSchema value is expected.

Source§

impl<T> IntoSchema for Arc<T>
where T: IntoSchema + ?Sized,

Source§

impl<T> IntoSchema for Bound<T>
where T: IntoSchema,

Source§

impl<T> IntoSchema for Box<T>
where T: IntoSchema + ?Sized,

Source§

impl<T> IntoSchema for HashSet<T>
where T: IntoSchema,

Source§

impl<T> IntoSchema for Option<T>
where T: IntoSchema,

Source§

impl<T> IntoSchema for Rc<T>
where T: IntoSchema + ?Sized,

Source§

impl<T> IntoSchema for Vec<T>
where T: IntoSchema,

Implementors§

Source§

impl IntoSchema for AccountId

Source§

impl IntoSchema for AgentAllFilter

Source§

impl IntoSchema for AgentAnyFilter

Source§

impl IntoSchema for AgentConfigVarsFilter

Source§

impl IntoSchema for AgentCreatedAtFilter

Source§

impl IntoSchema for AgentEnvFilter

Source§

impl IntoSchema for AgentId

Source§

impl IntoSchema for AgentMetadata

Source§

impl IntoSchema for AgentNameFilter

Source§

impl IntoSchema for AgentPropertyFilter

Source§

impl IntoSchema for AgentStatus

Source§

impl IntoSchema for AgentStatusFilter

Source§

impl IntoSchema for AgentVersionFilter

Source§

impl IntoSchema for BinaryRestrictions

Source§

impl IntoSchema for BinaryValuePayload

Source§

impl IntoSchema for BoolFlagShape

Source§

impl IntoSchema for CardId

Source§

impl IntoSchema for CardView

Source§

impl IntoSchema for CaseProjection

Source§

impl IntoSchema for CommandAnnotations

Source§

impl IntoSchema for CommandBody

Source§

impl IntoSchema for CommandIndex

Source§

impl IntoSchema for CommandNode

Source§

impl IntoSchema for CommandTree

Source§

impl IntoSchema for CompiledCommandCompatibility

Source§

impl IntoSchema for CompiledToolCompatibility

Source§

impl IntoSchema for ComponentId

Source§

impl IntoSchema for Constraint

Source§

impl IntoSchema for DiscriminatorRule

Source§

impl IntoSchema for Doc

Source§

impl IntoSchema for DuplicateKeyPolicy

Source§

impl IntoSchema for DurableFunctionType

Source§

impl IntoSchema for DurationValuePayload

Source§

impl IntoSchema for EnvironmentId

Source§

impl IntoSchema for ErrorCase

Source§

impl IntoSchema for ErrorKind

Source§

impl IntoSchema for ErrorProjection

Source§

impl IntoSchema for Example

Source§

impl IntoSchema for FieldDiscriminator

Source§

impl IntoSchema for FilterComparator

Source§

impl IntoSchema for FlagShape

Source§

impl IntoSchema for FlagSpec

Source§

impl IntoSchema for ForbidsC

Source§

impl IntoSchema for ForkDetails

Source§

impl IntoSchema for ForkResult

Source§

impl IntoSchema for Formatter

Source§

impl IntoSchema for Globals

Source§

impl IntoSchema for GuestPermissionCardHandle

Source§

impl IntoSchema for GuestQuotaTokenHandle

Source§

impl IntoSchema for GuestSecretHandle

Source§

impl IntoSchema for ImpliesC

Source§

impl IntoSchema for KernelModule

Source§

impl IntoSchema for MetadataEnvelope

Source§

impl IntoSchema for MonomorphicToolMiddlewareScope

Source§

impl IntoSchema for NamedFieldType

Source§

impl IntoSchema for NumericBound

Source§

impl IntoSchema for NumericRestrictions

Source§

impl IntoSchema for OplogEntryVersion

Source§

impl IntoSchema for OptionShape

Source§

impl IntoSchema for OptionSpec

Source§

impl IntoSchema for PathDirection

Source§

impl IntoSchema for PathKind

Source§

impl IntoSchema for PathSpec

Source§

impl IntoSchema for PatternGrant

Source§

impl IntoSchema for PermissionCardSpec

Source§

impl IntoSchema for PermissionCardValuePayload

Source§

impl IntoSchema for PermissionError

Source§

impl IntoSchema for Positional

Source§

impl IntoSchema for Positionals

Source§

impl IntoSchema for ProcessExitStatus

Source§

impl IntoSchema for ProjectionNode

Source§

impl IntoSchema for ProjectionPlan

Source§

impl IntoSchema for PromiseId

Source§

impl IntoSchema for Quantifier

Source§

impl IntoSchema for QuantitySpec

Source§

impl IntoSchema for QuantityValue

Source§

impl IntoSchema for QuotaTokenSpec

Source§

impl IntoSchema for QuotaTokenValuePayload

Source§

impl IntoSchema for RecordFieldProjection

Source§

impl IntoSchema for Ref

Source§

impl IntoSchema for RefGroup

Source§

impl IntoSchema for RepeatableListShape

Source§

impl IntoSchema for RepeatableMapShape

Source§

impl IntoSchema for Repetition

Source§

impl IntoSchema for golem_rust::schema::ResultSpec

Source§

impl IntoSchema for golem_rust::schema::tool::ResultSpec

Source§

impl IntoSchema for ResultValuePayload

Source§

impl IntoSchema for Role

Source§

impl IntoSchema for SchemaFingerprintV1

Source§

impl IntoSchema for SchemaGraph

Source§

impl IntoSchema for SchemaType

Source§

impl IntoSchema for SchemaTypeDef

Source§

impl IntoSchema for SchemaValue

Source§

impl IntoSchema for SchemaValueStream

Source§

impl IntoSchema for SecretSpec

Source§

impl IntoSchema for SecretValuePayload

Source§

impl IntoSchema for StreamSpec

Source§

impl IntoSchema for StringFilterComparator

Source§

impl IntoSchema for TailPositional

Source§

impl IntoSchema for TextRestrictions

Source§

impl IntoSchema for TextValuePayload

Source§

impl IntoSchema for Timestamp

Source§

impl IntoSchema for Tool

Source§

impl IntoSchema for ToolCompatibilityError

Source§

impl IntoSchema for ToolCompatibilityMode

Source§

impl IntoSchema for ToolCompatibilityWarning

Source§

impl IntoSchema for ToolMiddleware

Source§

impl IntoSchema for ToolMiddlewareScope

Source§

impl IntoSchema for TypeId

Source§

impl IntoSchema for TypedSchemaValue

Source§

impl IntoSchema for UnionBranch

Source§

impl IntoSchema for UnionSpec

Source§

impl IntoSchema for UnionValuePayload

Source§

impl IntoSchema for UpdateMode

Source§

impl IntoSchema for UrlRestrictions

Source§

impl IntoSchema for Uuid

Source§

impl IntoSchema for ValueIsRef

Source§

impl IntoSchema for VariantCaseType

Source§

impl IntoSchema for VariantValuePayload

Source§

impl<U> IntoSchema for Quantity<U>
where U: QuantityUnit,