reth::rpc::types::serde_helpers

Module displayfromstr

Expand description

Serde functions for (de)serializing using FromStr and Display

Useful for example in encoding SSZ uintN primitives using the “canonical JSON mapping” described in the consensus-specs here: https://github.com/ethereum/consensus-specs/blob/dev/ssz/simple-serialize.md#json-mapping

§Example

use alloy_serde;
use serde::{Deserialize, Serialize};

#[derive(Debug, PartialEq, Eq, Serialize, Deserialize)]
pub struct Container {
    #[serde(with = "alloy_serde::displayfromstr")]
    value: u64,
}

let val = Container { value: 18112749083033600 };
let s = serde_json::to_string(&val).unwrap();
assert_eq!(s, "{\"value\":\"18112749083033600\"}");

let deserialized: Container = serde_json::from_str(&s).unwrap();
assert_eq!(val, deserialized);

Functions§