Attribute Macro interoptopus::ffi_service
source · #[ffi_service]
Available on crate feature
derive
only.Expand description
Creates a FFI service from an impl Service {}
block.
See the service module for an introduction into services.
In order to appear in generated bindings the service also has to be mentioned in the inventory function.
§Requirements
For this attribute to work a number of preconditions must be fulfilled:
- The attribute must be used on
impl SomeType {}
blocks - The
error
parameter must be provided and point to anFFIError
type. - The respective
SomeType
type must have an#[ffi_type(opaque)]
attribute.
We recommend to have a look at the reference project.
§Parameters
The following parameters can be provided:
Parameter | Explanation |
---|---|
error = "t" | Use t as the FFIError type, mandatory. |
prefix = "p" | Add p to all generated method names. |
§Example
use interoptopus::{ffi_type, ffi_service, ffi_service_ctor};
#[ffi_type(opaque)]
pub struct SimpleService { }
#[ffi_service(error = "MyFFIError", prefix = "simple_service_")]
impl SimpleService {
#[ffi_service_ctor]
pub fn new_with(some_value: u32) -> Result<Self, Error> {
Ok(Self { })
}
}