docker_plugin 0.0.3

Scaffolding for implementing docker plugins in rust
Documentation
use std::ops::Deref;
use std::sync::Arc;
use axum::extract::State;
use axum::{Json, Router};
use axum::routing::post;
use serde::{Deserialize, Serialize};

pub mod volume;

#[derive(Debug, Clone, Serialize, Deserialize)]
#[serde(rename_all = "PascalCase")]
pub struct Manifest {
    implements: Vec<String>,
}

async fn activate(s: State<Arc<Vec<String>>>) -> Json<Manifest> {
    Json(Manifest {
        implements: s.0.deref().clone()
    })
}

pub fn router(implements: Vec<String>) -> Router {
    Router::new()
        .route("/Plugin.Activate", post(activate))
        .with_state(Arc::new(implements))
}