/// API identifier containing unique id and name
#[derive(Clone, Copy, Debug, PartialEq, Eq)]
pub struct ApiId {
/// Globally unique 64-bit identifier value for an API
pub id: u64,
/// Full name of the API, in kebab-case
pub name: &'static str,
}
/// Defines an API identifier
///
/// Usage: `define_api_id!(0xrandom_64bit, "kebab-case");`
#[doc(hidden)] // it is only for us in this crate
#[macro_export]
macro_rules! define_api_id {
($value:expr, $name:expr) => {
/// FFI API
pub static API: $crate::ApiId = $crate::ApiId {
id: $value,
name: $name,
};
};
}