Skip to main content

NativePlugin

Struct NativePlugin 

Source
pub struct NativePlugin { /* private fields */ }
Expand description

A loaded native plugin that can be called via FFI.

The plugin is automatically shut down when dropped.

Implementations§

Source§

impl NativePlugin

Source

pub fn call(&self, type_tag: &str, request: &str) -> ConsumerResult<String>

Make a JSON call to the plugin.

§Arguments
  • type_tag - Message type identifier (e.g., “echo”, “user.create”)
  • request - JSON request payload as a string
§Returns

The JSON response payload as a string, or an error.

§Example
let response = plugin.call("echo", r#"{"message": "Hello"}"#)?;
Source

pub fn call_typed<Req, Res>( &self, type_tag: &str, request: &Req, ) -> ConsumerResult<Res>
where Req: Serialize, Res: DeserializeOwned,

Make a typed call to the plugin with automatic serialization.

§Arguments
  • type_tag - Message type identifier
  • request - Request value to serialize to JSON
§Returns

The deserialized response, or an error.

§Example
#[derive(Serialize)]
struct EchoRequest { message: String }

#[derive(Deserialize)]
struct EchoResponse { message: String, length: usize }

let response: EchoResponse = plugin.call_typed("echo", &EchoRequest {
    message: "Hello".to_string(),
})?;
Source

pub fn call_raw( &self, message_id: u32, request: &[u8], ) -> ConsumerResult<Vec<u8>>

Make a binary call to the plugin.

This is used for high-performance binary transport.

§Arguments
  • message_id - Numeric message identifier
  • request - Raw request bytes
§Returns

The raw response bytes, or an error.

§Errors

Returns ConsumerError::MissingSymbol if binary transport is not available.

Source

pub fn state(&self) -> LifecycleState

Get the current lifecycle state of the plugin.

Source

pub fn rejected_request_count(&self) -> u64

Get the number of requests rejected due to concurrency limits.

Source

pub fn has_binary_transport(&self) -> bool

Check if binary transport is available.

Source

pub fn set_log_level(&self, level: LogLevel)

Set the log level for the plugin.

Source

pub fn shutdown(&self) -> ConsumerResult<()>

Shutdown the plugin gracefully.

This is called automatically when the plugin is dropped, but can be called explicitly to handle shutdown errors.

Trait Implementations§

Source§

impl Drop for NativePlugin

Source§

fn drop(&mut self)

Executes the destructor for this type. Read more
Source§

impl Send for NativePlugin

Source§

impl Sync for NativePlugin

Auto Trait Implementations§

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> Same for T

Source§

type Output = T

Should always be Self
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<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