Crates.io | wasmcloud-actor-extras |
lib.rs | wasmcloud-actor-extras |
version | 0.1.3 |
source | src |
created_at | 2021-02-10 15:59:50.41843 |
updated_at | 2021-08-11 14:15:20.642738 |
description | Interface to the extras contract for use by wasmCloud Actors |
homepage | |
repository | |
max_upload_size | |
id | 353265 |
size | 10,910 |
This crate provides wasmCloud actors with an interface to the extras capability provider.
Every wasmCloud host runtime automatically comes with a built-in extras provider. However,
actors using this provider will still need to be signed with the wasmcloud:extras
capability contract ID.
The following functions are supported on the extras Host
interface:
Example:
extern crate wapc_guest as guest;
use guest::prelude::*;
use wasmcloud_actor_core as actor;
use wasmcloud_actor_extras as extras;
use wasmcloud_actor_http_server as http;
use serde_json::json;
use log::{error, info};
#[actor::init]
pub fn init() {
http::Handlers::register_handle_request(generate_guid);
}
/// Generate a Guid and return it in a JSON envelope
fn generate_guid(_req: http::Request) -> HandlerResult<http::Response> {
let guid = get_guid()? // Replace this with `extras::default().request_guid()?`
.unwrap_or("unknown-guid".to_string());
let result = json!({"guid": guid });
Ok(http::Response::json(&result, 200, "OK"))
}