Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.
// Code generated by ndpgen. DO NOT EDIT.
//
//! Navidrome Host Function Wrappers for Rust Plugins
//!
//! This crate provides idiomatic Rust wrappers for all Navidrome host services.
//! It is auto-generated by the ndpgen tool and should not be edited manually.
//! # Usage
//! Add this crate as a dependency in your plugin's Cargo.toml:
//! ```toml
//! [dependencies]
//! nd-host = { path = "../../host/rust" }
//! ```
//! Then import the services you need:
//! ```ignore
//! use nd_host::{cache, scheduler};
//! fn my_plugin_function() -> Result<(), extism_pdk::Error> {
//! // Use the cache service
//! cache::set_string("my_key", "my_value", 3600)?;
//! // Schedule a recurring task
//! scheduler::schedule_recurring("@every 5m", "payload", "task_id")?;
//! Ok(())
//! }
//! # Available Services
//! - [`artwork`] - provides artwork public URL generation capabilities for plugins.
//! - [`cache`] - provides in-memory TTL-based caching capabilities for plugins.
//! - [`config`] - provides access to plugin configuration values.
//! - [`http`] - provides outbound HTTP request capabilities for plugins.
//! - [`kvstore`] - provides persistent key-value storage for plugins.
//! - [`library`] - provides access to music library metadata for plugins.
//! - [`scheduler`] - provides task scheduling capabilities for plugins.
//! - [`subsonicapi`] - provides access to Navidrome's Subsonic API from plugins.
//! - [`task`] - provides persistent task queues for plugins.
//! - [`users`] - provides access to user information for plugins.
//! - [`websocket`] - provides WebSocket communication capabilities for plugins.
#[doc(hidden)]
mod nd_host_artwork;
/// provides artwork public URL generation capabilities for plugins.
pub mod artwork {
pub use super::nd_host_artwork::*;
}
mod nd_host_cache;
/// provides in-memory TTL-based caching capabilities for plugins.
pub mod cache {
pub use super::nd_host_cache::*;
mod nd_host_config;
/// provides access to plugin configuration values.
pub mod config {
pub use super::nd_host_config::*;
mod nd_host_http;
/// provides outbound HTTP request capabilities for plugins.
pub mod http {
pub use super::nd_host_http::*;
mod nd_host_kvstore;
/// provides persistent key-value storage for plugins.
pub mod kvstore {
pub use super::nd_host_kvstore::*;
mod nd_host_library;
/// provides access to music library metadata for plugins.
pub mod library {
pub use super::nd_host_library::*;
mod nd_host_scheduler;
/// provides task scheduling capabilities for plugins.
pub mod scheduler {
pub use super::nd_host_scheduler::*;
mod nd_host_subsonicapi;
/// provides access to Navidrome's Subsonic API from plugins.
pub mod subsonicapi {
pub use super::nd_host_subsonicapi::*;
mod nd_host_task;
/// provides persistent task queues for plugins.
pub mod task {
pub use super::nd_host_task::*;
mod nd_host_users;
/// provides access to user information for plugins.
pub mod users {
pub use super::nd_host_users::*;
mod nd_host_websocket;
/// provides WebSocket communication capabilities for plugins.
pub mod websocket {
pub use super::nd_host_websocket::*;
// Re-export commonly used types from extism-pdk for convenience
pub use extism_pdk::Error;