pub trait Transport: TransportWithoutIO {
    fn handshake<'a>(
        &mut self,
        service: Service,
        extra_parameters: &'a [(&'a str, Option<&'a str>)]
    ) -> Result<SetServiceResponse<'_>, Error>; }
Expand description

All methods provided here must be called in the correct order according to the communication protocol used to connect to them. It does, however, know just enough to be able to provide a higher-level interface than would otherwise be possible. Thus the consumer of this trait will not have to deal with packet lines at all. Note that whenever a Read trait or Write trait is produced, it must be exhausted.

Required methods

Initiate connection to the given service and send the given extra_parameters along with it.

extra_parameters are interpreted as key=value pairs if the second parameter is Some or as key if it is None.

Returns the service capabilities according according to the actual Protocol it supports, and possibly a list of refs to be obtained. This means that asking for an unsupported protocol might result in a protocol downgrade to the given one if TransportWithoutIO::supported_protocol_versions() includes it. Exhaust the returned BufReader for a list of references in case of protocol V1 before making another request.

Implementations on Foreign Types

Implementors