pub struct ModuleAnnotations {Show 13 fields
pub readonly: bool,
pub destructive: bool,
pub idempotent: bool,
pub requires_approval: bool,
pub open_world: bool,
pub streaming: bool,
pub cacheable: bool,
pub cache_ttl: u64,
pub cache_key_fields: Option<Vec<String>>,
pub paginated: bool,
pub pagination_style: String,
pub discoverable: bool,
pub extra: HashMap<String, Value>,
}Expand description
Metadata annotations attached to a module. Describes behavioral characteristics of the module.
Wire format (PROTOCOL_SPEC §4.4.1): the extra field is serialized as a
nested JSON object under the key "extra". Extension keys MUST NOT be
flattened to the annotations root. The custom Deserialize impl below
accepts both the canonical nested form and the legacy flattened form
(apcore-rust ≤ 0.17.1) for one MINOR backward-compat cycle.
Fields§
§readonly: bool§destructive: bool§idempotent: bool§requires_approval: bool§open_world: bool§streaming: bool§cacheable: bool§cache_ttl: u64§cache_key_fields: Option<Vec<String>>§paginated: bool§pagination_style: String§discoverable: boolWhether this module is enumerated by Registry::list() /
Registry::iter() / Registry::module_ids() by default.
Per the apcore RFC docs/spec/rfc-ephemeral-modules.md (Accepted,
target v0.21.0): defaults to true. Setting discoverable: false
hides the module from default enumeration without unregistering it;
callers that legitimately need to see every module ID can pass
include_hidden=true to the relevant Registry method.
Cross-language alignment: matches ModuleAnnotations.discoverable
in apcore-python and apcore-typescript.
extra: HashMap<String, Value>Extension map for ecosystem package metadata.
Serialized as a nested "extra" object per spec §4.4.1.
Trait Implementations§
Source§impl Clone for ModuleAnnotations
impl Clone for ModuleAnnotations
Source§fn clone(&self) -> ModuleAnnotations
fn clone(&self) -> ModuleAnnotations
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
source. Read more