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.

Implementations on Foreign Types§

source§

impl<K, V> LightningEncode for (K, V)where K: LightningEncode + Clone, V: LightningEncode + Clone,

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

source§

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

source§

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

source§

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

source§

impl LightningEncode for Script

source§

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

source§

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

source§

impl LightningEncode for u8

source§

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

source§

impl LightningEncode for u32

source§

impl LightningEncode for FlagVec

source§

impl LightningEncode for &[u8]

source§

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

source§

impl LightningEncode for u24

source§

impl LightningEncode for Box<[u8]>

source§

impl LightningEncode for usize

source§

impl LightningEncode for Slice32

source§

impl LightningEncode for &str

source§

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

source§

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

source§

impl<T> LightningEncode for Holder<T, AsWrapped>where T: Wrapper, T::Inner: LightningEncode,

source§

impl LightningEncode for u64

source§

impl LightningEncode for String

source§

impl LightningEncode for u16

source§

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

Implementors§