Regc.Oci.Transport.Request (regc v0.0.2)
View SourceA single request passed to a custom Regc.Oci.Transport.
Request bodies make replayability explicit:
:noneand{:iodata, data}are replayable.{:factory, fun}is replayable by invokingfunfor each attempt.{:stream, enumerable}is a one-shot body and must not be replayed.
response_mode selects bounded buffering or incremental streaming.
max_body_bytes remains as a compatibility bridge for existing custom
transports; new code should use response_mode.
resolved_addresses, when present, contains addresses already resolved and
approved by Regc's built-in redirect or authentication policy.
Summary
Functions
Returns whether the request body can be safely produced again.
Returns the effective response mode.
Types
@type body() :: :none | {:iodata, iodata()} | {:stream, Enumerable.t()} | {:factory, (-> Enumerable.t())}
@type method() :: :head | :get | :post | :put | :patch | :delete
@type response_mode() :: {:buffer, non_neg_integer() | :infinity} | :stream
@type retry_policy() :: :never | :safe | :idempotent
@type t() :: %Regc.Oci.Transport.Request{ body: body(), content_length: non_neg_integer() | :unknown, headers: [{String.t(), String.t()}], max_body_bytes: non_neg_integer() | :infinity, metadata: map(), method: method(), resolved_addresses: [Regc.Oci.Transport.Address.address()] | nil, response_mode: response_mode() | nil, retry_policy: retry_policy(), url: String.t() }
Functions
Returns whether the request body can be safely produced again.
@spec response_mode(t()) :: response_mode()
Returns the effective response mode.
Requests created before response modes were introduced continue to map
max_body_bytes to a buffered response.