mirror of
https://github.com/mii443/wasmer.git
synced 2025-12-08 13:48:26 +00:00
doc(c-api) Update paste to 1.0 and document macros.
Thanks to https://github.com/dtolnay/paste/pull/48, we can generate documentation with various tokens. It's so cool. Thanks @dtolnay!
This commit is contained in:
@@ -2,7 +2,9 @@
|
||||
#[macro_export]
|
||||
macro_rules! wasm_declare_vec_inner {
|
||||
($name:ident) => {
|
||||
paste::item! {
|
||||
paste::paste! {
|
||||
/// Creates an empty vector of
|
||||
#[doc = "Creates an empty vector of [`wasm_" $name "_t`]."]
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn [<wasm_ $name _vec_new_empty>](out: *mut [<wasm_ $name _vec_t>]) {
|
||||
// TODO: actually implement this
|
||||
@@ -16,7 +18,8 @@ macro_rules! wasm_declare_vec_inner {
|
||||
#[macro_export]
|
||||
macro_rules! wasm_declare_vec {
|
||||
($name:ident) => {
|
||||
paste::item! {
|
||||
paste::paste! {
|
||||
#[doc = "Represents of a vector of [`wasm_" $name "_t`]."]
|
||||
#[derive(Debug)]
|
||||
#[repr(C)]
|
||||
pub struct [<wasm_ $name _vec_t>] {
|
||||
@@ -81,6 +84,7 @@ macro_rules! wasm_declare_vec {
|
||||
}
|
||||
|
||||
// TODO: investigate possible memory leak on `init` (owned pointer)
|
||||
#[doc = "Creates a new vector of [`wasm_" $name "_t`]."]
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn [<wasm_ $name _vec_new>](out: *mut [<wasm_ $name _vec_t>], length: usize, init: *mut [<wasm_ $name _t>]) {
|
||||
let mut bytes: Vec<[<wasm_ $name _t>]> = Vec::with_capacity(length);
|
||||
@@ -94,6 +98,7 @@ macro_rules! wasm_declare_vec {
|
||||
::std::mem::forget(bytes);
|
||||
}
|
||||
|
||||
#[doc = "Creates a new uninitialized vector of [`wasm_" $name "_t`]."]
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn [<wasm_ $name _vec_new_uninitialized>](out: *mut [<wasm_ $name _vec_t>], length: usize) {
|
||||
let mut bytes: Vec<[<wasm_ $name _t>]> = Vec::with_capacity(length);
|
||||
@@ -103,6 +108,7 @@ macro_rules! wasm_declare_vec {
|
||||
::std::mem::forget(bytes);
|
||||
}
|
||||
|
||||
#[doc = "Deletes a vector of [`wasm_" $name "_t`]."]
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn [<wasm_ $name _vec_delete>](ptr: Option<&mut [<wasm_ $name _vec_t>]>) {
|
||||
if let Some(vec) = ptr {
|
||||
@@ -123,7 +129,8 @@ macro_rules! wasm_declare_vec {
|
||||
#[macro_export]
|
||||
macro_rules! wasm_declare_boxed_vec {
|
||||
($name:ident) => {
|
||||
paste::item! {
|
||||
paste::paste! {
|
||||
#[doc = "Represents of a vector of [`wasm_" $name "_t`]."]
|
||||
#[derive(Debug)]
|
||||
#[repr(C)]
|
||||
pub struct [<wasm_ $name _vec_t>] {
|
||||
@@ -160,6 +167,7 @@ macro_rules! wasm_declare_boxed_vec {
|
||||
}
|
||||
|
||||
// TODO: investigate possible memory leak on `init` (owned pointer)
|
||||
#[doc = "Creates a new vector of [`wasm_" $name "_t`]."]
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn [<wasm_ $name _vec_new>](out: *mut [<wasm_ $name _vec_t>], length: usize, init: *const *mut [<wasm_ $name _t>]) {
|
||||
let mut bytes: Vec<*mut [<wasm_ $name _t>]> = Vec::with_capacity(length);
|
||||
@@ -173,6 +181,7 @@ macro_rules! wasm_declare_boxed_vec {
|
||||
::std::mem::forget(bytes);
|
||||
}
|
||||
|
||||
#[doc = "Creates a new uninitialized vector of [`wasm_" $name "_t`]."]
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn [<wasm_ $name _vec_new_uninitialized>](out: *mut [<wasm_ $name _vec_t>], length: usize) {
|
||||
let mut bytes: Vec<*mut [<wasm_ $name _t>]> = Vec::with_capacity(length);
|
||||
@@ -182,6 +191,7 @@ macro_rules! wasm_declare_boxed_vec {
|
||||
::std::mem::forget(bytes);
|
||||
}
|
||||
|
||||
#[doc = "Deletes a vector of [`wasm_" $name "_t`]."]
|
||||
#[no_mangle]
|
||||
pub unsafe extern "C" fn [<wasm_ $name _vec_delete>](ptr: *mut [<wasm_ $name _vec_t>]) {
|
||||
let vec = &mut *ptr;
|
||||
@@ -204,7 +214,7 @@ macro_rules! wasm_declare_ref_base {
|
||||
($name:ident) => {
|
||||
wasm_declare_own!($name);
|
||||
|
||||
paste::item! {
|
||||
paste::paste! {
|
||||
#[no_mangle]
|
||||
pub extern "C" fn [<wasm_ $name _copy>](_arg: *const [<wasm_ $name _t>]) -> *mut [<wasm_ $name _t>] {
|
||||
todo!("in generated declare ref base");
|
||||
@@ -221,7 +231,7 @@ macro_rules! wasm_declare_ref_base {
|
||||
#[macro_export]
|
||||
macro_rules! wasm_declare_own {
|
||||
($name:ident) => {
|
||||
paste::item! {
|
||||
paste::paste! {
|
||||
#[repr(C)]
|
||||
pub struct [<wasm_ $name _t>] {}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user