//! The `Plugin` trait: every plugin in Folk implements this.
use Result;
use async_trait;
use cratePluginContext;
use crateRpcMethodDef;
/// Lifecycle of a Folk plugin.
///
/// At server startup, plugins are booted in registration order. At shutdown,
/// they are stopped in reverse order. A plugin that holds long-running tasks
/// should consider implementing [`crate::ServerPlugin`] instead — the wrapper
/// handles the boilerplate of spawning, holding handles, and joining.