pub struct PluginProvider {
pub name: String,
pub command: String,
pub args: Vec<String>,
pub stdin: bool,
pub timeout_ms: u64,
}Expand description
A diagram provider that executes an external plugin via a subprocess protocol.
It communicates with the plugin using stdin (optional) and captures stdout for the rendered diagram. It supports argument templating for formats.
Fields§
§name: StringHuman-readable name of the plugin (e.g. “mytool”).
command: StringPath to the executable binary.
args: Vec<String>Arguments passed to the binary. Supports {format} substitution.
stdin: boolWhether to pipe the diagram source to the binary’s stdin.
timeout_ms: u64Maximum time allowed for the plugin to run.
Implementations§
Source§impl PluginProvider
impl PluginProvider
Sourcepub fn new(config: &PluginConfig) -> Self
pub fn new(config: &PluginConfig) -> Self
Creates a new plugin provider from the given configuration.
Trait Implementations§
Source§impl DiagramProvider for PluginProvider
impl DiagramProvider for PluginProvider
Source§fn validate(&self, source: &str) -> DiagramResult<()>
fn validate(&self, source: &str) -> DiagramResult<()>
Validates the diagram source text. Read more
Source§fn generate<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
source: &'life1 str,
format: &'life2 str,
) -> Pin<Box<dyn Future<Output = DiagramResult<Vec<u8>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
fn generate<'life0, 'life1, 'life2, 'async_trait>(
&'life0 self,
source: &'life1 str,
format: &'life2 str,
) -> Pin<Box<dyn Future<Output = DiagramResult<Vec<u8>>> + Send + 'async_trait>>where
Self: 'async_trait,
'life0: 'async_trait,
'life1: 'async_trait,
'life2: 'async_trait,
Generates a diagram image from the source text. Read more
Auto Trait Implementations§
impl Freeze for PluginProvider
impl RefUnwindSafe for PluginProvider
impl Send for PluginProvider
impl Sync for PluginProvider
impl Unpin for PluginProvider
impl UnwindSafe for PluginProvider
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<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more