[−][src]Trait libp2p_request_response::ProtocolName
Types serving as protocol names.
Context
In situations where we provide a list of protocols that we support,
the elements of that list are required to implement the ProtocolName
trait.
Libp2p will call ProtocolName::protocol_name
on each element of that list, and transmit the
returned value on the network. If the remote accepts a given protocol, the element
serves as the return value of the function that performed the negotiation.
Example
use libp2p_core::ProtocolName; enum MyProtocolName { Version1, Version2, Version3, } impl ProtocolName for MyProtocolName { fn protocol_name(&self) -> &[u8] { match *self { MyProtocolName::Version1 => b"/myproto/1.0", MyProtocolName::Version2 => b"/myproto/2.0", MyProtocolName::Version3 => b"/myproto/3.0", } } }
Required methods
fn protocol_name(&self) -> &[u8]
The protocol name as bytes. Transmitted on the network.
Note: Valid protocol names must start with /
and
not exceed 140 bytes in length.
Implementations on Foreign Types
impl<A, B> ProtocolName for EitherName<A, B> where
A: ProtocolName,
B: ProtocolName,
[src]
A: ProtocolName,
B: ProtocolName,
fn protocol_name(&self) -> &[u8]
[src]
impl<H> ProtocolName for IndexedProtoName<H> where
H: ProtocolName,
[src]
H: ProtocolName,