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 LightningEncode for Script

source§

impl LightningEncode for &[u8]

source§

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

source§

impl LightningEncode for Box<[u8]>

source§

impl LightningEncode for &str

source§

impl LightningEncode for String

source§

impl<T> LightningEncode for Option<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<K, V> LightningEncode for HashMap<K, V>where
K: LightningEncode,
V: LightningEncode,

source§

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

source§

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

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 LightningEncode for u8

source§

impl LightningEncode for u16

source§

impl LightningEncode for u24

source§

impl LightningEncode for u32

source§

impl LightningEncode for u64

source§

impl LightningEncode for usize

source§

impl LightningEncode for FlagVec

source§

impl LightningEncode for Slice32

source§

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

source§

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

source§

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

source§

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

Implementors§