grapheme-stdlib 0.6.1

Standard library operation implementations for Grapheme
Documentation
//! Plotting capability module (Wasm-first via plotters).

use crate::capability::CapabilityResponse;
use serde_json::Value as JsonValue;

pub fn line(args: &JsonValue) -> JsonValue {
    if !args.get("series").and_then(|v| v.as_array()).is_some_and(|s| !s.is_empty()) {
        return CapabilityResponse::invalid_args("missing required arg: series (non-empty array)");
    }
    CapabilityResponse::scaffold(
        "plot.line",
        "bind Wasm via modules/plot.module.json or run: grapheme modules activate plot",
    )
}

pub fn bar(args: &JsonValue) -> JsonValue {
    if !args.get("series").and_then(|v| v.as_array()).is_some_and(|s| !s.is_empty()) {
        return CapabilityResponse::invalid_args("missing required arg: series (non-empty array)");
    }
    CapabilityResponse::scaffold(
        "plot.bar",
        "bind Wasm via modules/plot.module.json or run: grapheme modules activate plot",
    )
}

pub fn scatter(args: &JsonValue) -> JsonValue {
    if !args.get("points").and_then(|v| v.as_array()).is_some_and(|s| !s.is_empty()) {
        return CapabilityResponse::invalid_args("missing required arg: points (non-empty array)");
    }
    CapabilityResponse::scaffold(
        "plot.scatter",
        "bind Wasm via modules/plot.module.json or run: grapheme modules activate plot",
    )
}