pub struct MethodSchema {
pub name: String,
pub description: String,
pub hash: String,
pub params: Option<Schema>,
pub returns: Option<Schema>,
pub streaming: bool,
}Expand description
Schema for a single method exposed by a plugin
Fields§
§name: StringMethod name (e.g., “echo”, “check”)
description: StringHuman-readable description of what this method does
hash: StringContent hash of the method definition (for cache invalidation) Generated by hashing the method signature within hub-macro
params: Option<Schema>JSON Schema for the method’s parameters (None if no params)
returns: Option<Schema>JSON Schema for the method’s return type (None if not specified)
streaming: boolWhether this method streams multiple events (true) or returns a single result (false)
streaming: true→ returnsAsyncGenerator<T>(multiple events)streaming: false→ returnsPromise<T>(single event, collected)
All methods use the same streaming protocol under the hood, but this flag tells clients how to present the result.
Implementations§
Source§impl MethodSchema
impl MethodSchema
Sourcepub fn new(
name: impl Into<String>,
description: impl Into<String>,
hash: impl Into<String>,
) -> Self
pub fn new( name: impl Into<String>, description: impl Into<String>, hash: impl Into<String>, ) -> Self
Create a new method schema with name, description, and hash
The hash should be computed from the method definition string within the hub-macro at compile time.
Sourcepub fn with_params(self, params: Schema) -> Self
pub fn with_params(self, params: Schema) -> Self
Add parameter schema
Sourcepub fn with_returns(self, returns: Schema) -> Self
pub fn with_returns(self, returns: Schema) -> Self
Add return type schema
Sourcepub fn with_streaming(self, streaming: bool) -> Self
pub fn with_streaming(self, streaming: bool) -> Self
Set the streaming flag
true→ method streams multiple events (useAsyncGenerator<T>)false→ method returns single result (usePromise<T>)
Trait Implementations§
Source§impl Clone for MethodSchema
impl Clone for MethodSchema
Source§fn clone(&self) -> MethodSchema
fn clone(&self) -> MethodSchema
1.0.0 · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read moreSource§impl Debug for MethodSchema
impl Debug for MethodSchema
Source§impl<'de> Deserialize<'de> for MethodSchema
impl<'de> Deserialize<'de> for MethodSchema
Source§fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>where
__D: Deserializer<'de>,
Source§impl JsonSchema for MethodSchema
impl JsonSchema for MethodSchema
Source§fn schema_id() -> Cow<'static, str>
fn schema_id() -> Cow<'static, str>
Source§fn json_schema(generator: &mut SchemaGenerator) -> Schema
fn json_schema(generator: &mut SchemaGenerator) -> Schema
Source§fn inline_schema() -> bool
fn inline_schema() -> bool
$ref keyword. Read more