Trait LightningEncode

Source
pub trait LightningEncode {
    // Required method
    fn lightning_encode<E: Write>(&self, e: E) -> Result<usize, Error>;

    // Provided method
    fn lightning_serialize(&self) -> Result<Vec<u8>, Error> { ... }
}
Expand description

Lightning-network specific encoding as defined in BOLT-1, 2, 3…

Required Methods§

Source

fn lightning_encode<E: Write>(&self, e: E) -> Result<usize, Error>

Encode with the given std::io::Write instance; must return result with either amount of bytes encoded – or implementation-specific error type.

Provided Methods§

Source

fn lightning_serialize(&self) -> Result<Vec<u8>, Error>

Serializes data as a byte array using LightningEncode::lightning_encode function.

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementations on Foreign Types§

Source§

impl LightningEncode for &str

Source§

impl LightningEncode for &[u8]

Source§

impl LightningEncode for u8

Source§

impl LightningEncode for u16

Source§

impl LightningEncode for u32

Source§

impl LightningEncode for u64

Source§

impl LightningEncode for usize

Source§

impl LightningEncode for Box<[u8]>

Source§

impl LightningEncode for String

Source§

impl LightningEncode for FlagVec

Source§

impl LightningEncode for Slice32

Source§

impl LightningEncode for u24

Source§

impl LightningEncode for Script

Source§

impl<K, V> LightningEncode for (K, V)

Two-component tuples are encoded as they were fields in the parent data structure

Source§

impl<K, V> LightningEncode for BTreeMap<K, V>

Source§

impl<K, V> LightningEncode for HashMap<K, V>

Source§

impl<T> LightningEncode for Option<T>
where T: LightningEncode,

Source§

impl<T> LightningEncode for BTreeSet<T>
where T: LightningEncode,

Source§

impl<T> LightningEncode for Vec<T>
where T: LightningEncode,

Source§

impl<T> LightningEncode for HashSet<T>
where T: LightningEncode,

Source§

impl<T> LightningEncode for Holder<T, AsBigSize>
where T: Into<BigSize> + Copy,

Source§

impl<T> LightningEncode for Holder<T, AsBitcoinHash>
where T: Hash + StrictEncode,

Source§

impl<T> LightningEncode for Holder<T, AsStrict>
where T: StrictEncode,

Source§

impl<T> LightningEncode for Holder<T, AsWrapped>

Source§

impl<const LEN: usize> LightningEncode for [u8; LEN]

Implementors§