apache-echarts-wrapper 0.0.12

Wrapper for Apache ECharts server-side rendering
Documentation
use apache_echarts_wrapper::common::Size;
use apache_echarts_wrapper::options::{EChartOptions, SeriesType};
use sailfish::TemplateSimple;
use time::macros::{datetime, time};
use time::Weekday::{Friday, Monday, Thursday, Tuesday};


mod common;
use crate::common::show_page;
#[cfg(feature = "time_axis")]
#[test]
fn time_test() {
    let chart_week = EChartOptions::<f64, time::Weekday>::default()
        .title_str("Week test".to_string())
        .add_series(
            SeriesType::Line,
            "first_set".to_string(),
            vec![(12.5,Monday),(14.0,Tuesday),(15.0,Thursday),(10.0,Friday)]
        )
        .add_series(
            SeriesType::Line,
            "second_set".to_string(),
            vec![(2.0,Monday),(14.0,Thursday),(15.0,Thursday),(20.0,Monday)]
        )
        .build(Size::pixels(600),Size::pixels(400));
    let chart_date_time = EChartOptions::<f64, time::UtcDateTime>::default()
        .title_str("utc date time test".to_string())
        .add_series(
            SeriesType::Line,
            "fist_set".to_string(),
            vec![
                (12.5,time::UtcDateTime::now()),
                (14.0,datetime!(2025-01-01 12:00 UTC).into()),
                (15.0,datetime!(2024-01-01 12:00 UTC).into()),
                (10.0,datetime!(2023-01-01 12:00 UTC).into())
            ]
        )
        .add_series(
            SeriesType::Line,
            "second_set".to_string(),
            vec![
                (2.0,datetime!(2025-01-01 12:00 UTC).into()),
                (14.0,datetime!(2024-01-01 12:00 UTC).into()),
                (15.0,datetime!(2023-01-01 12:00 UTC).into()),
                (20.0,datetime!(2022-01-01 12:00 UTC).into())
            ]
        )
        .build(Size::pixels(600),Size::pixels(400));


    let chart_time_conf = EChartOptions::<f64, time::Time>::default()
        .title_str("Time test".to_string())
        .add_series(
            SeriesType::Line,
            "fist_set".to_string(),
            vec![
                (12.5,time!(12:00)),
                (14.0,time!(12:30)),
                (15.0,time!(14:00)),
                (10.0,time!(17:00))
            ]
        )
        .add_series(
            SeriesType::Line,
            "second_set".to_string(),
            vec![
                (2.0,time!(12:00)),
                (14.0,time!(10:00)),
                (15.0,time!(11:00)),
                (20.0,time!(00:00))
            ]
        );
    let ser = serde_json::to_string(&chart_time_conf).unwrap();
    println!("{}",ser);
    let chart_time =chart_time_conf.build(Size::pixels(600),Size::pixels(400));
    let mut body = chart_week.render_once().unwrap();
    body.push_str(&chart_date_time.render_once().unwrap());
    body.push_str(&chart_time.render_once().unwrap());
    show_page(body.as_str())
}