#[derive(protocol_droid::serde::Serialize)]
struct Sum {
total: i32,
}
struct Kitchen;
#[protocol_droid::server(name = "kitchen")]
impl Kitchen {
#[protocol_droid::tool]
async fn add(a: i32, b: i32) -> Result<Sum, String> {
Ok(Sum { total: a + b })
}
#[protocol_droid::tool]
async fn add_and_log(
ctx: protocol_droid::application::server::context::RequestContext,
a: i32,
b: i32,
) -> Result<Sum, String> {
let _ = ctx;
Ok(Sum { total: a + b })
}
#[protocol_droid::resource(reader = read_readme)]
fn readme() -> protocol_droid::domain::registry::Resource {
protocol_droid::domain::registry::Resource::new("file:///README.md", "readme")
}
#[protocol_droid::prompt(getter = get_review)]
fn review() -> protocol_droid::domain::registry::Prompt {
protocol_droid::domain::registry::Prompt::new("review")
}
fn read_readme(
_context: protocol_droid::application::server::context::RequestContext,
_uri: &str,
) -> Vec<protocol_droid::domain::ir::ResourceContents> {
Vec::new()
}
fn get_review(
_context: protocol_droid::application::server::context::RequestContext,
_arguments: &protocol_droid::domain::ir::JsonObject,
) -> Vec<protocol_droid::domain::ir::PromptMessage> {
Vec::new()
}
}
fn main() {
let _ = Kitchen.into_server();
}