pub struct Versions { /* private fields */ }
Expand description
A Versions message begins channel negotiation.
Every channel must begin by sending a Versions message. This message lists the link protocol versions that this Tor implementation supports.
Note that we should never actually send Versions cells using the usual channel cell encoding: Versions cells always use two-byte circuit IDs, whereas all the other cell types use four-byte circuit IDs [assuming a non-obsolete version is negotiated].
Implementations
sourceimpl Versions
impl Versions
sourcepub fn new<B>(vs: B) -> Result<Self> where
B: Into<Vec<u16>>,
pub fn new<B>(vs: B) -> Result<Self> where
B: Into<Vec<u16>>,
Construct a new Versions message using a provided list of link protocols.
Returns an error if the list of versions is too long.
sourcepub fn encode_for_handshake(self) -> Vec<u8>
pub fn encode_for_handshake(self) -> Vec<u8>
Encode this VERSIONS cell in the manner expected for a handshake.
(That’s different from a standard cell encoding, since we have not negotiated versions yet, and so our circuit-ID length is an obsolete 2 bytes).
Return the best (numerically highest) link protocol that is shared by this versions cell and my_protos.
Trait Implementations
sourceimpl Body for Versions
impl Body for Versions
sourcefn into_message(self) -> ChanMsg
fn into_message(self) -> ChanMsg
Convert this type into a ChanMsg, wrapped as appropriate.
Auto Trait Implementations
impl RefUnwindSafe for Versions
impl Send for Versions
impl Sync for Versions
impl Unpin for Versions
impl UnwindSafe for Versions
Blanket Implementations
sourceimpl<T> BorrowMut<T> for T where
T: ?Sized,
impl<T> BorrowMut<T> for T where
T: ?Sized,
const: unstable · sourcefn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
sourceimpl<T> ToOwned for T where
T: Clone,
impl<T> ToOwned for T where
T: Clone,
type Owned = T
type Owned = T
The resulting type after obtaining ownership.
sourcefn clone_into(&self, target: &mut T)
fn clone_into(&self, target: &mut T)
toowned_clone_into
)Uses borrowed data to replace owned data, usually by cloning. Read more