// Copyright 2015-2017 Parity Technologies // // Licensed under the Apache License, Version 2.0 or the MIT license // , at your // option. This file may not be copied, modified, or distributed // except according to those terms. //! Common RLP traits use elastic_array::ElasticArray1024; use {DecoderError, UntrustedRlp, RlpStream}; /// RLP decodable trait pub trait Decodable: Sized { /// Decode a value from RLP bytes fn decode(rlp: &UntrustedRlp) -> Result; } /// Structure encodable to RLP pub trait Encodable { /// Append a value to the stream fn rlp_append(&self, s: &mut RlpStream); /// Get rlp-encoded bytes for this instance fn rlp_bytes(&self) -> ElasticArray1024 { let mut s = RlpStream::new(); self.rlp_append(&mut s); s.drain() } }