// Code generated by ndpgen. DO NOT EDIT. // // This file contains client wrappers for the Users host service. // It is intended for use in Navidrome plugins built with extism-pdk. use extism_pdk::*; use serde::{Deserialize, Serialize}; #[derive(Debug, Clone, Serialize, Deserialize)] #[serde(rename_all = "camelCase")] pub struct User { pub id: String, pub name: String, } #[derive(Debug, Clone, Serialize)] #[serde(rename_all = "camelCase")] struct UsersGetRequest { id: Option, filter: Option, } #[derive(Debug, Clone, Deserialize)] #[serde(rename_all = "camelCase")] struct UsersGetResponse { #[serde(default)] result: Option, #[serde(default)] error: Option, } #[host_fn] extern "ExtismHost" { fn users_get(input: Json) -> Json; } /// Calls the users_get host function. /// /// # Arguments /// * `id` - Option parameter. /// * `filter` - Option parameter. /// /// # Returns /// The result value. /// /// # Errors /// Returns an error if the host function call fails. pub fn get(id: Option, filter: Option) -> Result, Error> { let response = unsafe { users_get(Json(UsersGetRequest { id: id, filter: filter, }))? }; if let Some(err) = response.0.error { return Err(Error::msg(err)); } Ok(response.0.result) }