pub struct ExtensionService {
pub id: ServiceId,
pub name: String,
pub version: String,
pub description: String,
pub capabilities: Vec<Capability>,
pub transport: TransportConfig,
pub metadata: HashMap<String, Value>,
pub status: ServiceStatus,
pub last_heartbeat: Option<Instant>,
pub retry_count: u32,
}Expand description
Extension service metadata
Fields§
§id: ServiceIdUnique service identifier
name: StringHuman-readable service name
version: StringService version (semver)
description: StringService description
capabilities: Vec<Capability>Supported capabilities
transport: TransportConfigTransport configuration
metadata: HashMap<String, Value>Custom metadata
status: ServiceStatusCurrent status
last_heartbeat: Option<Instant>Time of last heartbeat
retry_count: u32Connection retry count
Implementations§
Source§impl ExtensionService
impl ExtensionService
Sourcepub fn new(name: impl Into<String>, version: impl Into<String>) -> Self
pub fn new(name: impl Into<String>, version: impl Into<String>) -> Self
Create a new extension service
Sourcepub fn description(self, desc: impl Into<String>) -> Self
pub fn description(self, desc: impl Into<String>) -> Self
Set service description
Sourcepub fn capability(self, cap: Capability) -> Self
pub fn capability(self, cap: Capability) -> Self
Add a capability
Sourcepub fn transport(self, transport: TransportConfig) -> Self
pub fn transport(self, transport: TransportConfig) -> Self
Set transport configuration
Sourcepub fn has_capability(&self, name: &str) -> bool
pub fn has_capability(&self, name: &str) -> bool
Check if service has a specific capability
Sourcepub fn get_capability(&self, name: &str) -> Option<&Capability>
pub fn get_capability(&self, name: &str) -> Option<&Capability>
Get capability by name
Sourcepub fn set_status(&mut self, status: ServiceStatus)
pub fn set_status(&mut self, status: ServiceStatus)
Update service status
Sourcepub fn is_healthy(&self, timeout_secs: u64) -> bool
pub fn is_healthy(&self, timeout_secs: u64) -> bool
Check if service is healthy (received heartbeat recently)
Trait Implementations§
Source§impl Clone for ExtensionService
impl Clone for ExtensionService
Source§fn clone(&self) -> ExtensionService
fn clone(&self) -> ExtensionService
Returns a duplicate of the value. Read more
1.0.0 (const: unstable) · Source§fn clone_from(&mut self, source: &Self)
fn clone_from(&mut self, source: &Self)
Performs copy-assignment from
source. Read moreSource§impl Debug for ExtensionService
impl Debug for ExtensionService
Source§impl<'de> Deserialize<'de> for ExtensionService
impl<'de> Deserialize<'de> for ExtensionService
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>,
Deserialize this value from the given Serde deserializer. Read more
Auto Trait Implementations§
impl Freeze for ExtensionService
impl RefUnwindSafe for ExtensionService
impl Send for ExtensionService
impl Sync for ExtensionService
impl Unpin for ExtensionService
impl UnsafeUnpin for ExtensionService
impl UnwindSafe for ExtensionService
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more