extern crate fidius_core as fidius;
use fidius_macro::plugin_interface;
#[plugin_interface(version = 1, buffer = PluginAllocated)]
pub trait Greeter: Send + Sync {
fn greet(&self, name: String) -> String;
#[optional(since = 2)]
fn greet_fancy(&self, name: String) -> String;
}
#[test]
fn vtable_struct_exists() {
let _size = std::mem::size_of::<__fidius_Greeter::Greeter_VTable>();
}
#[test]
fn interface_hash_is_nonzero() {
assert_ne!(__fidius_Greeter::Greeter_INTERFACE_HASH, 0);
}
#[test]
fn interface_version_matches() {
assert_eq!(__fidius_Greeter::Greeter_INTERFACE_VERSION, 1);
}
#[test]
fn buffer_strategy_matches() {
assert_eq!(__fidius_Greeter::Greeter_BUFFER_STRATEGY, 1); }
#[test]
fn capability_constant_exists() {
assert_eq!(__fidius_Greeter::Greeter_CAP_GREET_FANCY, 1u64);
}
#[test]
fn method_index_constants_exist() {
assert_eq!(__fidius_Greeter::METHOD_GREET, 0);
assert_eq!(__fidius_Greeter::METHOD_GREET_FANCY, 1);
}