Skip to main content

PluginInfoReq

Enum PluginInfoReq 

Source
pub enum PluginInfoReq<Codec = Default> {
    Close {
        __reply_tx: Sender<RemoteResult<()>, Codec>,
    },
    Manifest {
        __reply_tx: Sender<Result<Manifest, CallError>, Codec>,
    },
    LoadConfig {
        __reply_tx: Sender<RemoteResult<(Vec<StreamImpl>, Vec<ActionImpl>)>, Codec>,
        streams: Vec<StreamConfig>,
        actions: Vec<ActionConfig>,
    },
    Start {
        __reply_tx: Sender<RemoteResult<()>, Codec>,
    },
    // some variants omitted
}
Expand description

Request generated by calling a method on PluginInfo.

When matching on this, use a wildcard match _ to ignore all unknown variants.

Variants§

§

Close

Notify the plugin that reaction is quitting and that the plugin should quit too. A few seconds later, the plugin will receive SIGTERM. A few seconds later, the plugin will receive SIGKILL.

Function called after PluginInfo::start, when reaction is quitting.

Fields

§__reply_tx: Sender<RemoteResult<()>, Codec>

Reply channel for sending the result of the method invocation.

The channel is closed when the calling async method is cancelled or a connection error occurs.

§

Manifest

Return the manifest of the plugin. This should not be dynamic, and return always the same manifest.

Example implementation:

Ok(Manifest {
    hello: Hello::new(),
    streams: BTreeSet::from(["mystreamtype".into()]),
    actions: BTreeSet::from(["myactiontype".into()]),
})

First function called.

Fields

§__reply_tx: Sender<Result<Manifest, CallError>, Codec>

Reply channel for sending the result of the method invocation.

The channel is closed when the calling async method is cancelled or a connection error occurs.

§

LoadConfig

Load all plugin stream and action configurations. Must error if config is invalid.

The plugin should not start running mutable commands here: It should be ok to quit without cleanup for now.

Each StreamConfig from the streams arg should result in a corresponding StreamImpl returned, in the same order. Each ActionConfig from the actions arg should result in a corresponding ActionImpl returned, in the same order.

Function called after PluginInfo::manifest.

Fields

§__reply_tx: Sender<RemoteResult<(Vec<StreamImpl>, Vec<ActionImpl>)>, Codec>

Reply channel for sending the result of the method invocation.

The channel is closed when the calling async method is cancelled or a connection error occurs.

§streams: Vec<StreamConfig>

streams parameter

§actions: Vec<ActionConfig>

actions parameter

§

Start

Notify the plugin that setup is finished, permitting a last occasion to report an error that’ll make reaction exit. All initialization (opening remote connections, starting streams, etc) should happen here.

Function called after PluginInfo::load_config.

Fields

§__reply_tx: Sender<RemoteResult<()>, Codec>

Reply channel for sending the result of the method invocation.

The channel is closed when the calling async method is cancelled or a connection error occurs.

Trait Implementations§

Source§

impl<'de, Codec> Deserialize<'de> for PluginInfoReq<Codec>
where Codec: Codec,

Source§

fn deserialize<__D>(__deserializer: __D) -> Result<Self, __D::Error>
where __D: Deserializer<'de>,

Deserialize this value from the given Serde deserializer. Read more
Source§

impl<Codec> Serialize for PluginInfoReq<Codec>
where Codec: Codec,

Source§

fn serialize<__S>(&self, __serializer: __S) -> Result<__S::Ok, __S::Error>
where __S: Serializer,

Serialize this value into the given Serde serializer. Read more

Auto Trait Implementations§

§

impl<Codec> Freeze for PluginInfoReq<Codec>

§

impl<Codec> RefUnwindSafe for PluginInfoReq<Codec>
where Codec: RefUnwindSafe,

§

impl<Codec> Send for PluginInfoReq<Codec>
where Codec: Send,

§

impl<Codec> Sync for PluginInfoReq<Codec>
where Codec: Sync,

§

impl<Codec> Unpin for PluginInfoReq<Codec>
where Codec: Unpin,

§

impl<Codec> UnwindSafe for PluginInfoReq<Codec>
where Codec: UnwindSafe,

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.
Source§

impl<V, T> VZip<V> for T
where V: MultiLane<T>,

Source§

fn vzip(self) -> V

Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

impl<T> DeserializeOwned for T
where T: for<'de> Deserialize<'de>,

Source§

impl<T> RemoteSend for T
where T: Send + Serialize + DeserializeOwned + 'static,