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: Nonce
A nonce unique to this Self::Ping
message.
Pong(Nonce)
A pong
message.
Tuple Fields
0: Nonce
The nonce from the Self::Ping
message this was in response to.
Reject
A reject
message.
Fields
ccode: RejectReason
RejectReason 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
addr
messages, - parses received
addrv2
messages, ignoring some address types, - but does not send
addrv2
messages.
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
GetData
requests, 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
notfound
message 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: Filter
The 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 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,
source§unsafe fn clone_to_uninit(&self, dst: *mut T)
unsafe fn clone_to_uninit(&self, dst: *mut T)
clone_to_uninit
)§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.§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
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_yellow<'a>(&'a self) -> BgColorDisplay<'a, Yellow, Self>
fn on_yellow<'a>(&'a self) -> BgColorDisplay<'a, Yellow, Self>
§fn magenta<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>
fn magenta<'a>(&'a self) -> FgColorDisplay<'a, Magenta, Self>
§fn on_magenta<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>
fn on_magenta<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>
§fn on_purple<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>
fn on_purple<'a>(&'a self) -> BgColorDisplay<'a, Magenta, Self>
§fn default_color<'a>(&'a self) -> FgColorDisplay<'a, Default, Self>
fn default_color<'a>(&'a self) -> FgColorDisplay<'a, Default, Self>
§fn on_default_color<'a>(&'a self) -> BgColorDisplay<'a, Default, Self>
fn on_default_color<'a>(&'a self) -> BgColorDisplay<'a, Default, Self>
§fn bright_black<'a>(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>
fn bright_black<'a>(&'a self) -> FgColorDisplay<'a, BrightBlack, Self>
§fn on_bright_black<'a>(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>
fn on_bright_black<'a>(&'a self) -> BgColorDisplay<'a, BrightBlack, Self>
§fn bright_red<'a>(&'a self) -> FgColorDisplay<'a, BrightRed, Self>
fn bright_red<'a>(&'a self) -> FgColorDisplay<'a, BrightRed, Self>
§fn on_bright_red<'a>(&'a self) -> BgColorDisplay<'a, BrightRed, Self>
fn on_bright_red<'a>(&'a self) -> BgColorDisplay<'a, BrightRed, Self>
§fn bright_green<'a>(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>
fn bright_green<'a>(&'a self) -> FgColorDisplay<'a, BrightGreen, Self>
§fn on_bright_green<'a>(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>
fn on_bright_green<'a>(&'a self) -> BgColorDisplay<'a, BrightGreen, Self>
§fn bright_yellow<'a>(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>
fn bright_yellow<'a>(&'a self) -> FgColorDisplay<'a, BrightYellow, Self>
§fn on_bright_yellow<'a>(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>
fn on_bright_yellow<'a>(&'a self) -> BgColorDisplay<'a, BrightYellow, Self>
§fn bright_blue<'a>(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>
fn bright_blue<'a>(&'a self) -> FgColorDisplay<'a, BrightBlue, Self>
§fn on_bright_blue<'a>(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>
fn on_bright_blue<'a>(&'a self) -> BgColorDisplay<'a, BrightBlue, Self>
§fn bright_magenta<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
fn bright_magenta<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
§fn on_bright_magenta<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
fn on_bright_magenta<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
§fn bright_purple<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
fn bright_purple<'a>(&'a self) -> FgColorDisplay<'a, BrightMagenta, Self>
§fn on_bright_purple<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
fn on_bright_purple<'a>(&'a self) -> BgColorDisplay<'a, BrightMagenta, Self>
§fn bright_cyan<'a>(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>
fn bright_cyan<'a>(&'a self) -> FgColorDisplay<'a, BrightCyan, Self>
§fn on_bright_cyan<'a>(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>
fn on_bright_cyan<'a>(&'a self) -> BgColorDisplay<'a, BrightCyan, Self>
§fn bright_white<'a>(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>
fn bright_white<'a>(&'a self) -> FgColorDisplay<'a, BrightWhite, Self>
§fn on_bright_white<'a>(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>
fn on_bright_white<'a>(&'a self) -> BgColorDisplay<'a, BrightWhite, Self>
§fn blink_fast<'a>(&'a self) -> BlinkFastDisplay<'a, Self>
fn blink_fast<'a>(&'a self) -> BlinkFastDisplay<'a, Self>
§fn strikethrough<'a>(&'a self) -> StrikeThroughDisplay<'a, Self>
fn strikethrough<'a>(&'a self) -> StrikeThroughDisplay<'a, 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<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.