Skip to main content

IntoCapability

Trait IntoCapability 

Source
pub trait IntoCapability {
    // Required method
    fn into_capability(self) -> CapabilitySpec;
}
Expand description

Convert an application value into one capability registration.

This trait is intentionally public and non-sealed. Third-party crates can implement it without depending on everruns-core or host internals: return a CapabilitySpec built from a stable CapabilityRef. The consuming boundary (e.g. the Framework’s AgentBuilder::build) validates identifiers, JSON configuration, duplicates, and implementation collisions. Conversion itself is infallible and performs no registration.

§Example

use everruns_capability::{CapabilityRef, CapabilitySpec, IntoCapability};
use serde_json::json;

struct VendorSearch {
    index: String,
}

impl IntoCapability for VendorSearch {
    fn into_capability(self) -> CapabilitySpec {
        CapabilityRef::new("vendor.search")
            .config(json!({ "index": self.index }))
            .into()
    }
}

Required Methods§

Source

fn into_capability(self) -> CapabilitySpec

Consume the value and return its normalized specification.

Dyn Compatibility§

This trait is dyn compatible.

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

Implementations on Foreign Types§

Source§

impl IntoCapability for &String

Source§

impl IntoCapability for &str

Source§

impl IntoCapability for String

Implementors§

Source§

impl IntoCapability for CapabilityRef

Source§

impl IntoCapability for CapabilitySpec

Source§

impl IntoCapability for Definition

Available on crate feature definition only.