silk/http_transport
Profiles: aarch64-apple-darwin, aarch64-unknown-linux-gnu, aarch64-unknown-linux-gnu-no-libc, wasm32-unknown-unknown, x86_64-unknown-linux-gnu, x86_64-unknown-linux-gnu-no-libc.
Rich HTTP byte transport adapters that retain the exact plain or authenticated TLS provider.
Details
plain and secured borrow one concrete provider exclusively. The outer owner retains physical
resource ownership. close terminally closes the logical lease without a flush or TLS shutdown.
Import as HttpTransport with import silk.http_transport { HttpTransport }.
Public declarations: 8.
TransportError
pub union TransportErrorA transport failure with its original structured cause.
Plain
TransportError.Plain { error: ByteIoError }: TransportErrorA failure from the plain byte provider.
Field error
pub error: ByteIoErrorThe original byte operation failure.
Secured
TransportError.Secured { error: ConnectionError }: TransportErrorA failure from the authenticated TLS connection.
Field error
pub error: ConnectionErrorThe original TLS connection failure.
HttpTransport
pub service HttpTransportPartial HTTP byte transfers with unchanged absolute deadlines and rich failure causes.
Operation readSomeRaw
unsafe effect<'life0> fn readSomeRaw<'life0>(output: &'life0 mut [u8], deadline: silk/option.Option<silk/system_clock.Instant>) -> ReadTransfer ! TransportError | OutOfMemoryError ? &mut HttpTransport | &mut MonotonicClock | &mut Allocator | &mut RandomPerforms one provider read before canonical transfer-count validation.
Operation writeSomeRaw
unsafe effect<'life0> fn writeSomeRaw<'life0>(input: &'life0 [u8], deadline: silk/option.Option<silk/system_clock.Instant>) -> usize ! TransportError | OutOfMemoryError ? &mut HttpTransport | &mut MonotonicClock | &mut Allocator | &mut RandomPerforms one provider write before canonical transfer-count validation.
Operation flush
effect<'static> fn flush(deadline: silk/option.Option<silk/system_clock.Instant>) -> () ! TransportError | OutOfMemoryError ? &mut HttpTransport | &mut MonotonicClock | &mut Allocator | &mut RandomFlushes accepted bytes to the provider boundary.
Operation close
effect<'static> fn close() -> () ! TransportError ? &mut HttpTransport with Intrinsic.nonParking()Closes the logical lease without parking; repeated calls complete locally.
Associated function HttpTransport.readSome
pub effect<'life0> fn readSome<'life0>(output: &'life0 mut [u8], deadline: silk/option.Option<silk/system_clock.Instant>) -> ReadTransfer ! TransportError | OutOfMemoryError ? &mut HttpTransport | &mut MonotonicClock | &mut Allocator | &mut RandomReads one validated positive prefix or transport end; empty output completes locally.
Associated function HttpTransport.writeSome
pub effect<'life0> fn writeSome<'life0>(input: &'life0 [u8], deadline: silk/option.Option<silk/system_clock.Instant>) -> usize ! TransportError | OutOfMemoryError ? &mut HttpTransport | &mut MonotonicClock | &mut Allocator | &mut RandomWrites one validated positive prefix; empty input completes locally.
Plain
pub struct Plain<'provider, P>An exclusive borrowed plain byte provider with terminal close state.
Secured
pub struct Secured<'provider, P>An exclusive borrowed authenticated TLS connection with terminal close state.
plain
pub fn plain<'provider, P>(provider: &'provider mut P) -> silk/http_transport.Plain<'provider, P>Borrows one exact plain provider without allocation or I/O.
secured
pub fn secured<'provider, P>(provider: &'provider mut silk/tls_connection.OwnedConnection<P>) -> silk/http_transport.Secured<'provider, P>Borrows one exact authenticated connection without allocation or I/O.
Implementation HttpTransport for silk/http_transport.Plain<'provider, P>
impl HttpTransport for silk/http_transport.Plain<'provider, P>Operation readSomeRaw
readSomeRaw = Plain.readOperation writeSomeRaw
writeSomeRaw = Plain.writeOperation flush
flush = Plain.flushOutputOperation close
close = Plain.closeLeaseImplementation HttpTransport for silk/http_transport.Secured<'provider, P>
impl HttpTransport for silk/http_transport.Secured<'provider, P>Operation readSomeRaw
readSomeRaw = Secured.readOperation writeSomeRaw
writeSomeRaw = Secured.writeOperation flush
flush = Secured.flushOutputOperation close
close = Secured.closeLeaseLoan
pub struct Loan<'provider, P>An exclusive logical loan of one exact HTTP transport provider.
borrow
pub fn borrow<'provider, P>(provider: &'provider mut P) -> silk/http_transport.Loan<'provider, P>Borrows one HTTP provider for a scoped owned client session without allocation.
Implementation HttpTransport for silk/http_transport.Loan<'provider, P>
impl HttpTransport for silk/http_transport.Loan<'provider, P>Operation readSomeRaw
readSomeRaw = Loan.readOperation writeSomeRaw
writeSomeRaw = Loan.writeOperation flush
flush = Loan.flushOutputOperation close
close = Loan.closeLeaseImplementation ByteDuplex for silk/http_transport.Loan<'provider, P>
impl ByteDuplex for silk/http_transport.Loan<'provider, P>Operation readSomeRaw
readSomeRaw = Loan.readBytesOperation writeSomeRaw
writeSomeRaw = Loan.writeBytesOperation flushRaw
flushRaw = Loan.flushBytesOperation shutdownWriteRaw
shutdownWriteRaw = Loan.shutdownBytesOperation closeRaw
closeRaw = Loan.closeBytes