pub struct HttpGitHandler<R: RepositoryAccess, A: AuthenticationService> { /* private fields */ }Expand description
HTTP Git protocol handler
Implementations§
Source§impl<R: RepositoryAccess, A: AuthenticationService> HttpGitHandler<R, A>
impl<R: RepositoryAccess, A: AuthenticationService> HttpGitHandler<R, A>
Sourcepub async fn authenticate_http(
&self,
headers: &HashMap<String, String>,
) -> Result<(), ProtocolError>
pub async fn authenticate_http( &self, headers: &HashMap<String, String>, ) -> Result<(), ProtocolError>
Authenticate the HTTP request using provided headers Call this before invoking handle_* methods if your server requires auth
Sourcepub async fn handle_info_refs(
&mut self,
request_path: &str,
query: &str,
) -> Result<(Vec<u8>, &'static str), ProtocolError>
pub async fn handle_info_refs( &mut self, request_path: &str, query: &str, ) -> Result<(Vec<u8>, &'static str), ProtocolError>
Handle HTTP info/refs request
Processes GET requests to /{repo}/info/refs?service=git-{service} Uses extract_repo_path and get_service_from_query for proper parsing
Sourcepub async fn handle_upload_pack(
&mut self,
request_path: &str,
request_body: &[u8],
) -> Result<(ProtocolStream, &'static str), ProtocolError>
pub async fn handle_upload_pack( &mut self, request_path: &str, request_body: &[u8], ) -> Result<(ProtocolStream, &'static str), ProtocolError>
Handle HTTP upload-pack request
Processes POST requests to /{repo}/git-upload-pack
Sourcepub async fn handle_receive_pack(
&mut self,
request_path: &str,
request_stream: ProtocolStream,
) -> Result<(ProtocolStream, &'static str), ProtocolError>
pub async fn handle_receive_pack( &mut self, request_path: &str, request_stream: ProtocolStream, ) -> Result<(ProtocolStream, &'static str), ProtocolError>
Handle HTTP receive-pack request
Processes POST requests to /{repo}/git-receive-pack
Auto Trait Implementations§
impl<R, A> Freeze for HttpGitHandler<R, A>
impl<R, A> RefUnwindSafe for HttpGitHandler<R, A>where
R: RefUnwindSafe,
A: RefUnwindSafe,
impl<R, A> Send for HttpGitHandler<R, A>
impl<R, A> Sync for HttpGitHandler<R, A>
impl<R, A> Unpin for HttpGitHandler<R, A>
impl<R, A> UnwindSafe for HttpGitHandler<R, A>where
R: UnwindSafe,
A: UnwindSafe,
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
Mutably borrows from an owned value. Read more
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>
Converts
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>
Converts
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 moreSource§impl<T> Pointable for T
impl<T> Pointable for T
Source§impl<T> ValueSize for T
impl<T> ValueSize for T
Source§fn value_size(&self) -> usize
fn value_size(&self) -> usize
The size of this value in bytes, excluding allocated data. Read more
Source§fn value_size_sum_iter<'item>(iterator: impl Iterator<Item = &'item T>) -> usizewhere
T: 'item,
fn value_size_sum_iter<'item>(iterator: impl Iterator<Item = &'item T>) -> usizewhere
T: 'item,
The total sum of the sizes of all values in the given iterator, in
bytes. This is default-implemented by computing ValueSize::value_size
on every element and summing them. For Sized types, a more potentially
efficient implementation using Iterator::count is provided. If you are
implementing this trait manually, it is unlikely to be more efficient to
provide a manual implementation here. Read more
Source§fn value_size_sum_exact_size_iter<'item>(
iterator: impl ExactSizeIterator<Item = &'item T>,
) -> usizewhere
T: 'item,
fn value_size_sum_exact_size_iter<'item>(
iterator: impl ExactSizeIterator<Item = &'item T>,
) -> usizewhere
T: 'item,
The total sum of the sizes of all values in the given
exact-size-iterator, in bytes. This is default-implemented by using
ValueSize::value_size_sum_iter. For Sized types, a usually more
efficient implementation using ExactSizeIterator::len is provided. If
you are implementing this trait manually, it is unlikely to be more
efficient to provide a manual implementation here. Read more