calcite 0.2.6

A library to create deno plugins
Documentation
#[macro_use]
extern crate serde_derive;

#[calcite::deno_op]
fn array_buffer_example(mut arr: calcite::ArrayBuffer<i32>, num: i32) {
    for (pos, val) in arr.as_mut_slice().iter_mut().enumerate() {
        *val = num + pos as i32;
    }
}

#[derive(Deserialize, Debug)]
struct Struct1<'a> {
    a: i32,
    b: &'a str,
}

#[calcite::deno_op]
fn struct_example(s1: Struct1) {
    println!("Got argument {:?}", s1);
}

#[calcite::deno_op]
fn return_example(a: (i32, &str)) -> String {
    format!("I got {:?} as argument", a)
}

#[calcite::deno_op]
fn multiple_arguments_example(x: f32, y: (&str, &str)) {
    println!("Got arguments x:{} y:{:?}", x, y);
}

#[calcite::deno_op]
fn return_buffer() -> calcite::ReturnBuffer {
    calcite::ReturnBuffer::from_bytes(vec![5, 7, 1, 3])
}

#[calcite::deno_op]
fn name(x: serde_json::Value) -> serde_json::Value {
    x["name"].clone()
}

calcite::export!(
    array_buffer_example,
    struct_example,
    return_example,
    multiple_arguments_example,
    return_buffer,
    name
);