rust_dynamic 0.49.0

Support for dynamically-typed values in run-time
Documentation
use crate::value::{Value, timestamp_ms};
use std::collections::HashMap;
use crate::metric::Metric;
use nanoid::nanoid;
use crate::types::*;

impl Value {
    pub fn metrics_n(n: usize) -> Self {
        let mut data: Vec<Metric> = Vec::new();
        for _ in 0..n {
            data.push(Metric::new(0.0 as f64));
        }
        Self {
            id:   nanoid!(),
            stamp:  timestamp_ms(),
            dt:   METRICS,
            q:    100.0,
            data: Val::Metrics(data),
            attr: Vec::new(),
            curr: -1,
            tags:   HashMap::new(),
        }
    }
    pub fn metrics() -> Self {
        Value::metrics_n(128)
    }
    pub fn from_metrics(value: Vec<Metric>) -> Self {
        Self {
            id:   nanoid!(),
            stamp:  timestamp_ms(),
            dt:   METRICS,
            q:    100.0,
            data: Val::Metrics(value),
            attr: Vec::new(),
            curr: -1,
            tags:   HashMap::new(),
        }
    }
}