zero4rs 2.0.0

zero4rs is a powerful, pragmatic, and extremely fast web framework for Rust
Documentation
use crate::prelude2::*;

use chrono::{DateTime, Utc};

use serde_with::skip_serializing_none;

use crate::core::serde::f64_format::F64;
// use crate::core::serde::u128_format::U128;
use crate::core::serde::u64_format::U64;

use crate::core::serde::date_format_opt;

#[derive(serde::Serialize, Debug, serde::Deserialize)]
struct TestStruct {
    pub a: f32,
    #[serde(with = "date_format_opt", skip_serializing_if = "Option::is_none")]
    pub crated_at: Option<DateTime<Utc>>,
}

#[skip_serializing_none]
#[derive(serde::Deserialize, serde::Serialize)]
pub struct KLine {
    pub time: Option<U64>,
    // pub u128: Option<U128>,
    pub symbol: Option<String>,
    pub o: Option<F64>,
    pub c: Option<F64>,
    pub h: Option<F64>,
    pub l: Option<F64>,
}

pub async fn date_format(request: HttpRequest) -> impl Responder {
    let test_struct = TestStruct {
        a: 2.45,
        crated_at: Some(Utc::now()),
    };

    request.json(200, R::ok(test_struct))
}

pub async fn big_decimal(data: web::Json<KLine>, request: HttpRequest) -> impl Responder {
    let num = data.0.time.unwrap();

    log::info!("u64={}", num.0 + 1);

    log::info!("u256-max-value__={}", ethnum::U256::MAX);
    log::info!("u256-max-value-1={}", ethnum::U256::MAX - 1);
    log::info!("u256-max-string_={}", ethnum::U256::MAX);

    request.json(200, R::ok(data))
}