transport.ex (1209B)
1 defmodule Mint.Core.Transport do 2 @moduledoc false 3 4 @type error() :: {:error, %Mint.TransportError{}} 5 6 alias Mint.Types 7 8 @callback connect(address :: Types.address(), port :: :inet.port_number(), opts :: keyword()) :: 9 {:ok, Types.socket()} | error() 10 11 @callback upgrade( 12 Types.socket(), 13 original_scheme :: Types.scheme(), 14 hostname :: String.t(), 15 :inet.port_number(), 16 opts :: keyword() 17 ) :: {:ok, Types.socket()} | error() 18 19 @callback negotiated_protocol(Types.socket()) :: 20 {:ok, protocol :: binary()} | {:error, :protocol_not_negotiated} 21 22 @callback send(Types.socket(), payload :: iodata()) :: :ok | error() 23 24 @callback close(Types.socket()) :: :ok | error() 25 26 @callback recv(Types.socket(), bytes :: non_neg_integer(), timeout()) :: 27 {:ok, binary()} | error() 28 29 @callback controlling_process(Types.socket(), pid()) :: :ok | error() 30 31 @callback setopts(Types.socket(), opts :: keyword()) :: :ok | error() 32 33 @callback getopts(Types.socket(), opts :: keyword()) :: {:ok, opts :: keyword()} | error() 34 35 @callback wrap_error(reason :: term()) :: %Mint.TransportError{} 36 end