server-function 0.1.3

A macro for easy RPC creation
Documentation
# What is this


This is a macro for RPC programming needs which generates a structure and a thunk for function in a way that allows calling that function with a struct argument that supports ```serde::Deserialize```

## How to use


1. Mark function with ```#[server_function]``` attribute

    ```rust
    #[server_function]
    fn add(a: u32, b: u32) -> u32 {
        a + b
    }
    ```

2. This will generate ```AddArgs``` struct matching your function arguments that looks like this

    ```rust
    struct AddArgs {
        a: u32,
        b: u32
    }
    ```

    and a function named ```add_thunk``` with ```AddArgs``` struct as 1 argument
3. Now you can call it

    ```rust
    // will return 10, same as original function
    add_thunk(AddArgs { a: 5, b: 5 })
    ```

## Features


### messagepack


Enables rmp-serde and allows server function to be called using raw messagepack bytes using ```with_bytes_thunk(bytes: &[u8])```

#### Example


```rust
let bytes = rmp_serde::to_vec(AddArgs { a: 5, b: 5 }).unwrap();
add_messagepack_thunk(&bytes) // should return 10
```