ark_api_ffi/api_id.rs
1/// API identifier containing unique id and name
2#[derive(Clone, Copy, Debug, PartialEq, Eq)]
3pub struct ApiId {
4 /// Globally unique 64-bit identifier value for an API
5 pub id: u64,
6 /// Full name of the API, in kebab-case
7 pub name: &'static str,
8}
9
10/// Defines an API identifier
11///
12/// Usage: `define_api_id!(0xrandom_64bit, "kebab-case");`
13#[doc(hidden)] // it is only for us in this crate
14#[macro_export]
15macro_rules! define_api_id {
16 ($value:expr, $name:expr) => {
17 /// FFI API
18 pub static API: $crate::ApiId = $crate::ApiId {
19 id: $value,
20 name: $name,
21 };
22 };
23}