Crate alloy_rlp

source ·
Expand description

§alloy-rlp

This crate provides Ethereum RLP (de)serialization functionality. RLP is commonly used for Ethereum EL datastructures, and its documentation can be found at ethereum.org.

§Usage

We strongly recommend deriving RLP traits via the RlpEncodable and RlpDecodable derive macros.

Trait methods can then be accessed via the Encodable and Decodable traits.

§Example

use alloy_rlp::{RlpEncodable, RlpDecodable, Decodable, Encodable};

#[derive(Debug, RlpEncodable, RlpDecodable, PartialEq)]
pub struct MyStruct {
    pub a: u64,
    pub b: Vec<u8>,
}

let my_struct = MyStruct {
    a: 42,
    b: vec![1, 2, 3],
};

let mut buffer = Vec::<u8>::new();
let encoded = my_struct.encode(&mut buffer);
let decoded = MyStruct::decode(&mut buffer.as_slice()).unwrap();
assert_eq!(my_struct, decoded);

Re-exports§

Macros§

Structs§

  • The header of an RLP item.
  • An active RLP decoder, with a specific slice of a payload.

Enums§

Constants§

Traits§

Functions§

Type Aliases§

Derive Macros§

  • Derives Decodable for the type whose implementation expects an rlp-list input: <rlp-header, fields...>
  • Derives Decodable for the type whose implementation expects only the individual fields encoded: <fields...>
  • Derives Encodable for the type which encodes the all fields as list: <rlp-header, fields...>
  • Derives Encodable for the newtype which encodes its single field as-is, without a header: <field>
  • Derives MaxEncodedLen for types of constant size.