Macro portunusd::define_server_procedure[][src]

macro_rules! define_server_procedure {
    ($i:ident($a:ident: &[u8]) -> Vec<u8> $b:block) => { ... };
}
Expand description

Create a function that can respond to door invocations!

Your function will need to accept a slice of u8 and return Vec<u8>. As an example, consider the server procedure below which greets a telnet user:

use portunusd::define_server_procedure;
use std::fmt::format;
use std::str::from_utf8;

define_server_procedure!(Hello(request: &[u8]) -> Vec<u8> {
    match from_utf8(request) {
        Err(_) => vec![],
        Ok(name) => {
            let response = format!("Hello, {}!", name);
            response.into_bytes()
        }
    }
});