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}