pub enum Message {
Show 19 variants
Version(VersionMessage),
Verack,
Ping(Nonce),
Pong(Nonce),
Reject {
message: String,
ccode: RejectReason,
reason: String,
data: Option<[u8; 32]>,
},
GetAddr,
Addr(Vec<MetaAddr>),
GetBlocks {
known_blocks: Vec<Hash>,
stop: Option<Hash>,
},
Inv(Vec<InventoryHash>),
GetHeaders {
known_blocks: Vec<Hash>,
stop: Option<Hash>,
},
Headers(Vec<CountedHeader>),
GetData(Vec<InventoryHash>),
Block(Arc<Block>),
Tx(UnminedTx),
NotFound(Vec<InventoryHash>),
Mempool,
FilterLoad {
filter: Filter,
hash_functions_count: u32,
tweak: Tweak,
flags: u8,
},
FilterAdd {
data: Vec<u8>,
},
FilterClear,
}Expand description
A Bitcoin-like network message for the Zcash protocol.
The Zcash network protocol is mostly inherited from Bitcoin, and a list of Bitcoin network messages can be found on the Bitcoin wiki.
That page describes the wire format of the messages, while this enum stores an internal representation. The internal representation is unlinked from the wire format, and the translation between the two happens only during serialization and deserialization. For instance, Bitcoin identifies messages by a 12-byte ascii command string; we consider this a serialization detail and use the enum discriminant instead. (As a side benefit, this also means that we have a clearly-defined validation boundary for network messages during serialization).
Variants§
Version(VersionMessage)
A version message.
Note that although this is called version in Bitcoin, its role is really
analogous to a ClientHello message in TLS, used to begin a handshake, and
is distinct from a simple version number.
Verack
A verack message.
Ping(Nonce)
A ping message.
Tuple Fields
0: NonceA nonce unique to this Self::Ping message.
Pong(Nonce)
A pong message.
Tuple Fields
0: NonceThe nonce from the Self::Ping message this was in response to.
Reject
A reject message.
Fields
ccode: RejectReasonRejectReason code relating to rejected message.
GetAddr
A getaddr message.
Addr(Vec<MetaAddr>)
A sent or received addr message, or a received addrv2 message.
Currently, Zebra:
- sends and receives
addrmessages, - parses received
addrv2messages, ignoring some address types, - but does not send
addrv2messages.
The list contains 0..=MAX_META_ADDR addresses.
Because some address types are ignored, the deserialized vector can be empty, even if the peer sent addresses. This is not an error.
GetBlocks
A getblocks message.
known_blocks is a series of known block hashes spaced out along the
peer’s best chain. The remote peer uses them to compute the intersection
of its best chain and determine the blocks following the intersection
point.
The peer responds with an inv packet with the hashes of subsequent blocks.
If supplied, the stop parameter specifies the last header to request.
Otherwise, an inv packet with the maximum number (500) are sent.
The known blocks list contains zero or more block hashes.
Fields
Inv(Vec<InventoryHash>)
An inv message.
Allows a node to advertise its knowledge of one or more
objects. It can be received unsolicited, or in reply to
getblocks.
The list contains zero or more inventory hashes.
GetHeaders
A getheaders message.
known_blocks is a series of known block hashes spaced out along the
peer’s best chain. The remote peer uses them to compute the intersection
of its best chain and determine the blocks following the intersection
point.
The peer responds with an headers packet with the headers of subsequent blocks.
If supplied, the stop parameter specifies the last header to request.
Otherwise, the maximum number of block headers (160) are sent.
The known blocks list contains zero or more block hashes.
Fields
Headers(Vec<CountedHeader>)
A headers message.
Returns block headers in response to a getheaders packet.
Each block header is accompanied by a transaction count.
The list contains zero or more headers.
GetData(Vec<InventoryHash>)
A getdata message.
getdata is used in response to inv, to retrieve the
content of a specific object, and is usually sent after
receiving an inv packet, after filtering known elements.
zcashd returns requested items in a single batch of messages.
Missing blocks are silently skipped. Missing transaction hashes are
included in a single notfound message following the transactions.
Other item or non-item messages can come before or after the batch.
The list contains zero or more inventory hashes.
Block(Arc<Block>)
A block message.
Tx(UnminedTx)
A tx message.
This message can be used to:
- send unmined transactions in response to
GetDatarequests, and - advertise unmined transactions for the mempool.
Zebra chooses to advertise new transactions using Inv(hash) rather than Tx(transaction).
NotFound(Vec<InventoryHash>)
A notfound message.
Zebra responds with this message when it doesn’t have the requested blocks or transactions.
When a peer requests a list of transaction hashes, zcashd returns:
- a batch of messages containing found transactions, then
- a
notfoundmessage containing a list of transaction hashes that aren’t available in its mempool or state.
But when a peer requests blocks or headers, any missing items are
silently skipped, without any notfound messages.
The list contains zero or more inventory hashes.
Mempool
FilterLoad
A filterload message.
This was defined in BIP37, which is included in Zcash.
Zebra currently ignores this message.
Fields
filter: FilterThe filter itself is simply a bit field of arbitrary byte-aligned size. The maximum size is 36,000 bytes.
FilterAdd
A filteradd message.
This was defined in BIP37, which is included in Zcash.
Zebra currently ignores this message.
FilterClear
A filterclear message.
This was defined in BIP37, which is included in Zcash.
Zebra currently ignores this message.
Implementations§
Source§impl Message
impl Message
Sourcepub fn inv_strategy() -> BoxedStrategy<Self>
pub fn inv_strategy() -> BoxedStrategy<Self>
Create a strategy that only generates Message::Inv messages.
Sourcepub fn get_data_strategy() -> BoxedStrategy<Self>
pub fn get_data_strategy() -> BoxedStrategy<Self>
Create a strategy that only generates Message::GetData messages.
Trait Implementations§
Source§impl Arbitrary for Message
impl Arbitrary for Message
Source§type Parameters = (<VersionMessage as Arbitrary>::Parameters, <Nonce as Arbitrary>::Parameters, <Nonce as Arbitrary>::Parameters, (<String as Arbitrary>::Parameters, <RejectReason as Arbitrary>::Parameters, <String as Arbitrary>::Parameters, <Option<[u8; 32]> as Arbitrary>::Parameters), <Vec<MetaAddr> as Arbitrary>::Parameters, (<Vec<Hash> as Arbitrary>::Parameters, <Option<Hash> as Arbitrary>::Parameters), <Vec<InventoryHash> as Arbitrary>::Parameters, (<Vec<Hash> as Arbitrary>::Parameters, <Option<Hash> as Arbitrary>::Parameters), <Vec<CountedHeader> as Arbitrary>::Parameters, (<Vec<InventoryHash> as Arbitrary>::Parameters, <Arc<Block> as Arbitrary>::Parameters, <UnminedTx as Arbitrary>::Parameters, <Vec<InventoryHash> as Arbitrary>::Parameters, (<Filter as Arbitrary>::Parameters, <u32 as Arbitrary>::Parameters, <Tweak as Arbitrary>::Parameters, <u8 as Arbitrary>::Parameters), <Vec<u8> as Arbitrary>::Parameters))
type Parameters = (<VersionMessage as Arbitrary>::Parameters, <Nonce as Arbitrary>::Parameters, <Nonce as Arbitrary>::Parameters, (<String as Arbitrary>::Parameters, <RejectReason as Arbitrary>::Parameters, <String as Arbitrary>::Parameters, <Option<[u8; 32]> as Arbitrary>::Parameters), <Vec<MetaAddr> as Arbitrary>::Parameters, (<Vec<Hash> as Arbitrary>::Parameters, <Option<Hash> as Arbitrary>::Parameters), <Vec<InventoryHash> as Arbitrary>::Parameters, (<Vec<Hash> as Arbitrary>::Parameters, <Option<Hash> as Arbitrary>::Parameters), <Vec<CountedHeader> as Arbitrary>::Parameters, (<Vec<InventoryHash> as Arbitrary>::Parameters, <Arc<Block> as Arbitrary>::Parameters, <UnminedTx as Arbitrary>::Parameters, <Vec<InventoryHash> as Arbitrary>::Parameters, (<Filter as Arbitrary>::Parameters, <u32 as Arbitrary>::Parameters, <Tweak as Arbitrary>::Parameters, <u8 as Arbitrary>::Parameters), <Vec<u8> as Arbitrary>::Parameters))
arbitrary_with accepts for configuration
of the generated Strategy. Parameters must implement Default.Source§type Strategy = TupleUnion<((u32, Arc<Map<<VersionMessage as Arbitrary>::Strategy, fn(VersionMessage) -> Message>>), (u32, Arc<fn() -> Message>), (u32, Arc<Map<<Nonce as Arbitrary>::Strategy, fn(Nonce) -> Message>>), (u32, Arc<Map<<Nonce as Arbitrary>::Strategy, fn(Nonce) -> Message>>), (u32, Arc<Map<(<String as Arbitrary>::Strategy, <RejectReason as Arbitrary>::Strategy, <String as Arbitrary>::Strategy, <Option<[u8; 32]> as Arbitrary>::Strategy), fn((String, RejectReason, String, Option<[u8; 32]>)) -> Message>>), (u32, Arc<fn() -> Message>), (u32, Arc<Map<<Vec<MetaAddr> as Arbitrary>::Strategy, fn(Vec<MetaAddr>) -> Message>>), (u32, Arc<Map<(<Vec<Hash> as Arbitrary>::Strategy, <Option<Hash> as Arbitrary>::Strategy), fn((Vec<Hash>, Option<Hash>)) -> Message>>), (u32, Arc<Map<<Vec<InventoryHash> as Arbitrary>::Strategy, fn(Vec<InventoryHash>) -> Message>>), (u32, Arc<TupleUnion<((u32, Arc<Map<(<Vec<Hash> as Arbitrary>::Strategy, <Option<Hash> as Arbitrary>::Strategy), fn((Vec<Hash>, Option<Hash>)) -> Message>>), (u32, Arc<Map<<Vec<CountedHeader> as Arbitrary>::Strategy, fn(Vec<CountedHeader>) -> Message>>), (u32, Arc<Map<<Vec<InventoryHash> as Arbitrary>::Strategy, fn(Vec<InventoryHash>) -> Message>>), (u32, Arc<Map<<Arc<Block> as Arbitrary>::Strategy, fn(Arc<Block>) -> Message>>), (u32, Arc<Map<<UnminedTx as Arbitrary>::Strategy, fn(UnminedTx) -> Message>>), (u32, Arc<Map<<Vec<InventoryHash> as Arbitrary>::Strategy, fn(Vec<InventoryHash>) -> Message>>), (u32, Arc<fn() -> Message>), (u32, Arc<Map<(<Filter as Arbitrary>::Strategy, <u32 as Arbitrary>::Strategy, <Tweak as Arbitrary>::Strategy, <u8 as Arbitrary>::Strategy), fn((Filter, u32, Tweak, u8)) -> Message>>), (u32, Arc<Map<<Vec<u8> as Arbitrary>::Strategy, fn(Vec<u8>) -> Message>>), (u32, Arc<fn() -> Message>))>>))>
type Strategy = TupleUnion<((u32, Arc<Map<<VersionMessage as Arbitrary>::Strategy, fn(VersionMessage) -> Message>>), (u32, Arc<fn() -> Message>), (u32, Arc<Map<<Nonce as Arbitrary>::Strategy, fn(Nonce) -> Message>>), (u32, Arc<Map<<Nonce as Arbitrary>::Strategy, fn(Nonce) -> Message>>), (u32, Arc<Map<(<String as Arbitrary>::Strategy, <RejectReason as Arbitrary>::Strategy, <String as Arbitrary>::Strategy, <Option<[u8; 32]> as Arbitrary>::Strategy), fn((String, RejectReason, String, Option<[u8; 32]>)) -> Message>>), (u32, Arc<fn() -> Message>), (u32, Arc<Map<<Vec<MetaAddr> as Arbitrary>::Strategy, fn(Vec<MetaAddr>) -> Message>>), (u32, Arc<Map<(<Vec<Hash> as Arbitrary>::Strategy, <Option<Hash> as Arbitrary>::Strategy), fn((Vec<Hash>, Option<Hash>)) -> Message>>), (u32, Arc<Map<<Vec<InventoryHash> as Arbitrary>::Strategy, fn(Vec<InventoryHash>) -> Message>>), (u32, Arc<TupleUnion<((u32, Arc<Map<(<Vec<Hash> as Arbitrary>::Strategy, <Option<Hash> as Arbitrary>::Strategy), fn((Vec<Hash>, Option<Hash>)) -> Message>>), (u32, Arc<Map<<Vec<CountedHeader> as Arbitrary>::Strategy, fn(Vec<CountedHeader>) -> Message>>), (u32, Arc<Map<<Vec<InventoryHash> as Arbitrary>::Strategy, fn(Vec<InventoryHash>) -> Message>>), (u32, Arc<Map<<Arc<Block> as Arbitrary>::Strategy, fn(Arc<Block>) -> Message>>), (u32, Arc<Map<<UnminedTx as Arbitrary>::Strategy, fn(UnminedTx) -> Message>>), (u32, Arc<Map<<Vec<InventoryHash> as Arbitrary>::Strategy, fn(Vec<InventoryHash>) -> Message>>), (u32, Arc<fn() -> Message>), (u32, Arc<Map<(<Filter as Arbitrary>::Strategy, <u32 as Arbitrary>::Strategy, <Tweak as Arbitrary>::Strategy, <u8 as Arbitrary>::Strategy), fn((Filter, u32, Tweak, u8)) -> Message>>), (u32, Arc<Map<<Vec<u8> as Arbitrary>::Strategy, fn(Vec<u8>) -> Message>>), (u32, Arc<fn() -> Message>))>>))>
Strategy used to generate values of type Self.Source§fn arbitrary_with(_top: Self::Parameters) -> Self::Strategy
fn arbitrary_with(_top: Self::Parameters) -> Self::Strategy
Source§impl From<VersionMessage> for Message
impl From<VersionMessage> for Message
Source§fn from(version_message: VersionMessage) -> Self
fn from(version_message: VersionMessage) -> Self
Source§impl TryFrom<Message> for VersionMessage
impl TryFrom<Message> for VersionMessage
impl Eq for Message
impl StructuralPartialEq for Message
Auto Trait Implementations§
impl Freeze for Message
impl RefUnwindSafe for Message
impl Send for Message
impl Sync for Message
impl Unpin for Message
impl UnsafeUnpin for Message
impl UnwindSafe for Message
Blanket Implementations§
Source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
Source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Source§impl<T> CloneToUninit for Twhere
T: Clone,
impl<T> CloneToUninit for Twhere
T: Clone,
§impl<T> Conv for T
impl<T> Conv for T
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.Source§impl<Q, K> Equivalent<K> for Q
impl<Q, K> Equivalent<K> for Q
Source§fn equivalent(&self, key: &K) -> bool
fn equivalent(&self, key: &K) -> bool
key and return true if they are equal.§impl<T> FmtForward for T
impl<T> FmtForward for T
§fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
fn fmt_binary(self) -> FmtBinary<Self>where
Self: Binary,
self to use its Binary implementation when Debug-formatted.§fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
fn fmt_display(self) -> FmtDisplay<Self>where
Self: Display,
self to use its Display implementation when
Debug-formatted.§fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
fn fmt_lower_exp(self) -> FmtLowerExp<Self>where
Self: LowerExp,
self to use its LowerExp implementation when
Debug-formatted.§fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
fn fmt_lower_hex(self) -> FmtLowerHex<Self>where
Self: LowerHex,
self to use its LowerHex implementation when
Debug-formatted.§fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
fn fmt_octal(self) -> FmtOctal<Self>where
Self: Octal,
self to use its Octal implementation when Debug-formatted.§fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
fn fmt_pointer(self) -> FmtPointer<Self>where
Self: Pointer,
self to use its Pointer implementation when
Debug-formatted.§fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
fn fmt_upper_exp(self) -> FmtUpperExp<Self>where
Self: UpperExp,
self to use its UpperExp implementation when
Debug-formatted.§fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
fn fmt_upper_hex(self) -> FmtUpperHex<Self>where
Self: UpperHex,
self to use its UpperHex implementation when
Debug-formatted.§fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
fn fmt_list(self) -> FmtList<Self>where
&'a Self: for<'a> IntoIterator,
§impl<T> Instrument for T
impl<T> Instrument for T
§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> Instrument for T
impl<T> Instrument for T
Source§fn instrument(self, span: Span) -> Instrumented<Self>
fn instrument(self, span: Span) -> Instrumented<Self>
Source§fn in_current_span(self) -> Instrumented<Self>
fn in_current_span(self) -> Instrumented<Self>
Source§impl<T> IntoEither for T
impl<T> IntoEither for T
Source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left is true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read moreSource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
self into a Left variant of Either<Self, Self>
if into_left(&self) returns true.
Converts self into a Right variant of Either<Self, Self>
otherwise. Read more§impl<D> OwoColorize for D
impl<D> OwoColorize for D
§fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
fn fg<C>(&self) -> FgColorDisplay<'_, C, Self>where
C: Color,
§fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
fn bg<C>(&self) -> BgColorDisplay<'_, C, Self>where
C: Color,
§fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
fn on_magenta(&self) -> BgColorDisplay<'_, Magenta, Self>
§fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
fn default_color(&self) -> FgColorDisplay<'_, Default, Self>
§fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
fn on_default_color(&self) -> BgColorDisplay<'_, Default, Self>
§fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
fn bright_black(&self) -> FgColorDisplay<'_, BrightBlack, Self>
§fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
fn on_bright_black(&self) -> BgColorDisplay<'_, BrightBlack, Self>
§fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
fn bright_red(&self) -> FgColorDisplay<'_, BrightRed, Self>
§fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
fn on_bright_red(&self) -> BgColorDisplay<'_, BrightRed, Self>
§fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
fn bright_green(&self) -> FgColorDisplay<'_, BrightGreen, Self>
§fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
fn on_bright_green(&self) -> BgColorDisplay<'_, BrightGreen, Self>
§fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
fn bright_yellow(&self) -> FgColorDisplay<'_, BrightYellow, Self>
§fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
fn on_bright_yellow(&self) -> BgColorDisplay<'_, BrightYellow, Self>
§fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
fn bright_blue(&self) -> FgColorDisplay<'_, BrightBlue, Self>
§fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
fn on_bright_blue(&self) -> BgColorDisplay<'_, BrightBlue, Self>
§fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_magenta(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_magenta(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
fn bright_purple(&self) -> FgColorDisplay<'_, BrightMagenta, Self>
§fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
fn on_bright_purple(&self) -> BgColorDisplay<'_, BrightMagenta, Self>
§fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
fn bright_cyan(&self) -> FgColorDisplay<'_, BrightCyan, Self>
§fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
fn on_bright_cyan(&self) -> BgColorDisplay<'_, BrightCyan, Self>
§fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
fn bright_white(&self) -> FgColorDisplay<'_, BrightWhite, Self>
§fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
fn on_bright_white(&self) -> BgColorDisplay<'_, BrightWhite, Self>
§fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
fn blink_fast(&self) -> BlinkFastDisplay<'_, Self>
§fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
fn strikethrough(&self) -> StrikeThroughDisplay<'_, Self>
§fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn color<Color>(&self, color: Color) -> FgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::fg] or
a color-specific method, such as [OwoColorize::green], Read more§fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
fn on_color<Color>(&self, color: Color) -> BgDynColorDisplay<'_, Color, Self>where
Color: DynColor,
OwoColorize::bg] or
a color-specific method, such as [OwoColorize::on_yellow], Read more§fn fg_rgb<const R: u8, const G: u8, const B: u8>(
&self,
) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn fg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> FgColorDisplay<'_, CustomColor<R, G, B>, Self>
§fn bg_rgb<const R: u8, const G: u8, const B: u8>(
&self,
) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
fn bg_rgb<const R: u8, const G: u8, const B: u8>( &self, ) -> BgColorDisplay<'_, CustomColor<R, G, B>, Self>
§fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
fn truecolor(&self, r: u8, g: u8, b: u8) -> FgDynColorDisplay<'_, Rgb, Self>
§fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
fn on_truecolor(&self, r: u8, g: u8, b: u8) -> BgDynColorDisplay<'_, Rgb, Self>
§impl<T> Pipe for Twhere
T: ?Sized,
impl<T> Pipe for Twhere
T: ?Sized,
§fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
fn pipe<R>(self, func: impl FnOnce(Self) -> R) -> Rwhere
Self: Sized,
§fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref<'a, R>(&'a self, func: impl FnOnce(&'a Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
fn pipe_ref_mut<'a, R>(&'a mut self, func: impl FnOnce(&'a mut Self) -> R) -> Rwhere
R: 'a,
self and passes that borrow into the pipe function. Read more§fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
fn pipe_borrow<'a, B, R>(&'a self, func: impl FnOnce(&'a B) -> R) -> R
§fn pipe_borrow_mut<'a, B, R>(
&'a mut self,
func: impl FnOnce(&'a mut B) -> R,
) -> R
fn pipe_borrow_mut<'a, B, R>( &'a mut self, func: impl FnOnce(&'a mut B) -> R, ) -> R
§fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
fn pipe_as_ref<'a, U, R>(&'a self, func: impl FnOnce(&'a U) -> R) -> R
self, then passes self.as_ref() into the pipe function.§fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
fn pipe_as_mut<'a, U, R>(&'a mut self, func: impl FnOnce(&'a mut U) -> R) -> R
self, then passes self.as_mut() into the pipe
function.§fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
fn pipe_deref<'a, T, R>(&'a self, func: impl FnOnce(&'a T) -> R) -> R
self, then passes self.deref() into the pipe function.§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<Response, Error> ResponseResult<Response, Error> for Response
impl<Response, Error> ResponseResult<Response, Error> for Response
Source§fn into_result(self) -> Result<Response, Error>
fn into_result(self) -> Result<Response, Error>
Result that can be sent as a response.Source§impl<T> SectionExt for T
impl<T> SectionExt for T
§impl<T> Tap for T
impl<T> Tap for T
§fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow<B>(self, func: impl FnOnce(&B)) -> Self
Borrow<B> of a value. Read more§fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut<B>(self, func: impl FnOnce(&mut B)) -> Self
BorrowMut<B> of a value. Read more§fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref<R>(self, func: impl FnOnce(&R)) -> Self
AsRef<R> view of a value. Read more§fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut<R>(self, func: impl FnOnce(&mut R)) -> Self
AsMut<R> view of a value. Read more§fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref<T>(self, func: impl FnOnce(&T)) -> Self
Deref::Target of a value. Read more§fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
fn tap_deref_mut<T>(self, func: impl FnOnce(&mut T)) -> Self
Deref::Target of a value. Read more§fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
fn tap_dbg(self, func: impl FnOnce(&Self)) -> Self
.tap() only in debug builds, and is erased in release builds.§fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
fn tap_mut_dbg(self, func: impl FnOnce(&mut Self)) -> Self
.tap_mut() only in debug builds, and is erased in release
builds.§fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
fn tap_borrow_dbg<B>(self, func: impl FnOnce(&B)) -> Self
.tap_borrow() only in debug builds, and is erased in release
builds.§fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
fn tap_borrow_mut_dbg<B>(self, func: impl FnOnce(&mut B)) -> Self
.tap_borrow_mut() only in debug builds, and is erased in release
builds.§fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
fn tap_ref_dbg<R>(self, func: impl FnOnce(&R)) -> Self
.tap_ref() only in debug builds, and is erased in release
builds.§fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
fn tap_ref_mut_dbg<R>(self, func: impl FnOnce(&mut R)) -> Self
.tap_ref_mut() only in debug builds, and is erased in release
builds.§fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
fn tap_deref_dbg<T>(self, func: impl FnOnce(&T)) -> Self
.tap_deref() only in debug builds, and is erased in release
builds.§impl<T> TryConv for T
impl<T> TryConv for T
§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Source§impl<T> WithSubscriber for T
impl<T> WithSubscriber for T
Source§fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>where
S: Into<Dispatch>,
Source§fn with_current_subscriber(self) -> WithDispatch<Self>
fn with_current_subscriber(self) -> WithDispatch<Self>
Layout§
Note: Most layout information is completely unstable and may even differ between compilations. The only exception is types with certain repr(...) attributes. Please see the Rust Reference's “Type Layout” chapter for details on type layout guarantees.
Size: 144 bytes
Size for each variant:
Version: 144 bytesVerack: 0 bytesPing: 16 bytesPong: 16 bytesReject: 96 bytesGetAddr: 0 bytesAddr: 32 bytesGetBlocks: 72 bytesInv: 32 bytesGetHeaders: 72 bytesHeaders: 32 bytesGetData: 32 bytesBlock: 16 bytesTx: 104 bytesNotFound: 32 bytesMempool: 0 bytesFilterLoad: 48 bytesFilterAdd: 32 bytesFilterClear: 0 bytes