pub struct IntegrationPlugin {
pub experimental_only: bool,
pub feature_flag: Option<&'static str>,
pub factory: fn() -> Box<dyn Capability>,
}Expand description
Plugin registration point for external integration crates.
Integration crates use inventory::submit! to register their capabilities
without requiring everruns-core to know about them at compile time.
The CapabilityRegistry::with_builtins_for_grade() method iterates all
registered plugins and includes those matching the current deployment grade.
§Example
ⓘ
// In integrations/daytona/src/lib.rs:
inventory::submit! {
everruns_core::capabilities::IntegrationPlugin {
experimental_only: false,
feature_flag: None,
factory: || Box::new(DaytonaCapability),
}
}Fields§
§experimental_only: boolIf true, only registered when DeploymentGrade::experimental_features_enabled() is true.
feature_flag: Option<&'static str>If set, only registered when the named internal feature flag is enabled.
Checked via InternalFeatureFlags::is_enabled() at registry build time.
factory: fn() -> Box<dyn Capability>Factory function that creates the capability instance.
Trait Implementations§
impl Collect for IntegrationPlugin
Auto Trait Implementations§
impl Freeze for IntegrationPlugin
impl RefUnwindSafe for IntegrationPlugin
impl Send for IntegrationPlugin
impl Sync for IntegrationPlugin
impl Unpin for IntegrationPlugin
impl UnsafeUnpin for IntegrationPlugin
impl UnwindSafe for IntegrationPlugin
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
impl<ST, DT> CastableFrom<ST, Initialized, Initialized> for DT
impl<ST, DT> CastableFrom<ST, Uninit, Uninit> for DT
Source§impl<T> FutureExt for T
impl<T> FutureExt for T
Source§fn with_context(self, otel_cx: Context) -> WithContext<Self>
fn with_context(self, otel_cx: Context) -> WithContext<Self>
Source§fn with_current_context(self) -> WithContext<Self>
fn with_current_context(self) -> WithContext<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoRequest<T> for T
impl<T> IntoRequest<T> for T
Source§fn into_request(self) -> Request<T>
fn into_request(self) -> Request<T>
Wrap the input message
T in a tonic::Request