pub struct Response { /* private fields */ }
Available on crate features async-client or blocking-client only.
Expand description

A representation of a complete fetch response

Implementations§

§

impl Response

pub fn has_pack(&self) -> bool

Return true if the response has a pack which can be read next.

pub fn check_required_features( version: Protocol, features: &[(&'static str, Option<Cow<'static, str>>)] ) -> Result<(), Error>

Return an error if the given features don’t contain the required ones (the ones this implementation needs) for the given version of the protocol.

Even though technically any set of features supported by the server could work, we only implement the ones that make it easy to maintain all versions with a single code base that aims to be and remain maintainable.

pub fn acknowledgements(&self) -> &[Acknowledgement]

Return all acknowledgements parsed previously.

pub fn shallow_updates(&self) -> &[ShallowUpdate]

Return all shallow update lines parsed previously.

pub fn wanted_refs(&self) -> &[WantedRef]

Return all wanted-refs parsed previously.

§

impl Response

pub fn from_line_reader( version: Protocol, reader: &mut impl ExtendedBufRead, client_expects_pack: bool ) -> Result<Response, Error>

Parse a response of the given version of the protocol from reader.

client_expects_pack is only relevant for V1 stateful connections, and if false, causes us to stop parsing when seeing NAK, and if true we will keep parsing until we get a pack as the client already signalled to the server that it’s done. This way of doing things allows us to exploit knowledge about more recent versions of the protocol, which keeps code easier and more localized without having to support all the cruft that there is.

Trait Implementations§

§

impl Debug for Response

§

fn fmt(&self, f: &mut Formatter<'_>) -> Result<(), Error>

Formats the value using the given formatter. Read more

Auto Trait Implementations§

Blanket Implementations§

source§

impl<T> Any for Twhere T: 'static + ?Sized,

source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
source§

impl<T> Borrow<T> for Twhere T: ?Sized,

source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
source§

impl<T> BorrowMut<T> for Twhere T: ?Sized,

source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
source§

impl<T> From<T> for T

source§

fn from(t: T) -> T

Returns the argument unchanged.

source§

impl<T, U> Into<U> for Twhere U: From<T>,

source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

§

impl<T> Pointable for T

§

const ALIGN: usize = mem::align_of::<T>()

The alignment of pointer.
§

type Init = T

The type for initializers.
§

unsafe fn init(init: <T as Pointable>::Init) -> usize

Initializes a with the given initializer. Read more
§

unsafe fn deref<'a>(ptr: usize) -> &'a T

Dereferences the given pointer. Read more
§

unsafe fn deref_mut<'a>(ptr: usize) -> &'a mut T

Mutably dereferences the given pointer. Read more
§

unsafe fn drop(ptr: usize)

Drops the object pointed to by the given pointer. Read more
source§

impl<T, U> TryFrom<U> for Twhere U: Into<T>,

§

type Error = Infallible

The type returned in the event of a conversion error.
source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
source§

impl<T, U> TryInto<U> for Twhere U: TryFrom<T>,

§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.