Skip to main content

DefaultHttpTransfer

Struct DefaultHttpTransfer 

Source
pub struct DefaultHttpTransfer { /* private fields */ }
Expand description

Built-in HTTP transfer backend based on reqwest and async file I/O.

Implementations§

Source§

impl DefaultHttpTransfer

Source

pub fn new() -> Self

Creates a backend with default HTTP timeout and keepalive values.

§Examples
use rusty_cat::DefaultHttpTransfer;

let backend = DefaultHttpTransfer::new();
let _ = backend;
Source

pub fn with_http_timeouts( http_timeout: Duration, tcp_keepalive: Duration, ) -> Self

Creates built-in backend with explicit timeout and keepalive values.

§Range guidance
  • http_timeout: recommended 1s..=120s
  • tcp_keepalive: recommended 10s..=300s
§Examples
use std::time::Duration;
use rusty_cat::DefaultHttpTransfer;

let backend = DefaultHttpTransfer::with_http_timeouts(
    Duration::from_secs(15),
    Duration::from_secs(60),
);
let _ = backend;
Source

pub fn try_with_http_timeouts( http_timeout: Duration, tcp_keepalive: Duration, ) -> Result<Self, MeowError>

Preferred fallible constructor with explicit error propagation.

§Errors

Returns HttpClientBuildFailed when reqwest::Client cannot be constructed with the provided timeout/keepalive values.

§Examples
use std::time::Duration;
use rusty_cat::DefaultHttpTransfer;

let backend = DefaultHttpTransfer::try_with_http_timeouts(
    Duration::from_secs(10),
    Duration::from_secs(30),
)?;
let _ = backend;
Source

pub fn with_client(client: Client) -> Self

Creates backend with an externally provided reqwest::Client.

§Examples
use rusty_cat::DefaultHttpTransfer;

let reqwest_client = reqwest::Client::new();
let backend = DefaultHttpTransfer::with_client(reqwest_client);
let _ = backend;
Source

pub fn with_fallbacks( client: Client, upload: Arc<dyn BreakpointUpload + Send + Sync>, download: Arc<dyn BreakpointDownload + Send + Sync>, ) -> Self

Creates backend with explicit fallback upload/download protocol plugins.

Task-level protocol instances still take precedence when present.

§Examples
use std::sync::Arc;
use rusty_cat::{DefaultHttpTransfer, DefaultStyleUpload, StandardRangeDownload};

let backend = DefaultHttpTransfer::with_fallbacks(
    reqwest::Client::new(),
    Arc::new(DefaultStyleUpload::default()),
    Arc::new(StandardRangeDownload::default()),
);
let _ = backend;

Trait Implementations§

Source§

impl Default for DefaultHttpTransfer

Source§

fn default() -> Self

Returns the “default value” for a type. Read more
Source§

impl TransferTrait for DefaultHttpTransfer

Source§

fn prepare<'life0, 'life1, 'async_trait>( &'life0 self, task: &'life1 TransferTask, local_offset: u64, ) -> Pin<Box<dyn Future<Output = Result<PrepareOutcome, MeowError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Prepares transfer execution according to task direction.

Source§

fn transfer_chunk<'life0, 'life1, 'async_trait>( &'life0 self, task: &'life1 TransferTask, offset: u64, chunk_size: u64, remote_total_size: u64, ) -> Pin<Box<dyn Future<Output = Result<ChunkOutcome, MeowError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Transfers one chunk according to task direction.

Source§

fn cancel<'life0, 'life1, 'async_trait>( &'life0 self, task: &'life1 TransferTask, ) -> Pin<Box<dyn Future<Output = Result<(), MeowError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Handles task cancel; upload direction may trigger protocol abort.

Auto Trait Implementations§

Blanket Implementations§

Source§

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

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

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

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where 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> Instrument for T

Source§

fn instrument(self, span: Span) -> Instrumented<Self>

Instruments this type with the provided Span, returning an Instrumented wrapper. Read more
Source§

fn in_current_span(self) -> Instrumented<Self>

Instruments this type with the current Span, returning an Instrumented wrapper. Read more
Source§

impl<T, U> Into<U> for T
where 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.

Source§

impl<T> PolicyExt for T
where T: ?Sized,

Source§

fn and<P, B, E>(self, other: P) -> And<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow only if self and other return Action::Follow. Read more
Source§

fn or<P, B, E>(self, other: P) -> Or<T, P>
where T: Policy<B, E>, P: Policy<B, E>,

Create a new Policy that returns Action::Follow if either self or other returns Action::Follow. Read more
Source§

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

Source§

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 T
where U: TryFrom<T>,

Source§

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.
Source§

impl<T> WithSubscriber for T

Source§

fn with_subscriber<S>(self, subscriber: S) -> WithDispatch<Self>
where S: Into<Dispatch>,

Attaches the provided Subscriber to this type, returning a WithDispatch wrapper. Read more
Source§

fn with_current_subscriber(self) -> WithDispatch<Self>

Attaches the current default Subscriber to this type, returning a WithDispatch wrapper. Read more