use crate::*;
pub(crate) fn new() -> Item {
let docs = docs! {
};
let name = "ed25519".into();
let items = vec![
item! {
enum Kind {
Private = 0,
Public = 1,
}
},
item! {
fn is_supported "c2s" {} -> bool
},
item! {
fn get_layout "c2l" {
kind: usize,
size: *mut u32,
align: *mut u32,
} -> ()
},
item! {
fn wrapped_length "c2k" {} -> usize
},
item! {
fn generate "c2g" {
private: *mut u8,
} -> ()
},
item! {
fn public "c2p" {
private: *const u8,
public: *mut u8,
} -> ()
},
item! {
fn sign "c2i" {
private: *const u8,
message: *const u8,
message_len: usize,
r: *mut u8,
s: *mut u8,
} -> ()
},
item! {
fn verify "c2v" {
public: *const u8,
message: *const u8,
message_len: usize,
r: *const u8,
s: *const u8,
} -> bool
},
item! {
fn drop "c2d" {
private: *mut u8,
} -> ()
},
item! {
fn wrap "c2w" {
private: *const u8,
wrapped: *mut u8,
} -> ()
},
item! {
fn unwrap "c2u" {
wrapped: *const u8,
private: *mut u8,
} -> ()
},
item! {
fn export "c2e" {
public: *const u8,
a: *mut u8,
} -> ()
},
item! {
fn import "c2m" {
a: *const u8,
public: *mut u8,
} -> ()
},
];
Item::Mod(Mod { docs, name, items })
}