conn.ex (1952B)
1 defmodule Mint.Core.Conn do 2 @moduledoc false 3 4 alias Mint.Types 5 6 @type conn() :: term() 7 8 @callback initiate( 9 module(), 10 Mint.Types.socket(), 11 String.t(), 12 :inet.port_number(), 13 keyword() 14 ) :: {:ok, conn()} | {:error, Types.error()} 15 16 @callback open?(conn(), :read | :write | :read_write) :: boolean() 17 18 @callback close(conn()) :: {:ok, conn()} 19 20 @callback request( 21 conn(), 22 method :: String.t(), 23 path :: String.t(), 24 Types.headers(), 25 body :: iodata() | nil | :stream 26 ) :: 27 {:ok, conn(), Types.request_ref()} 28 | {:error, conn(), Types.error()} 29 30 @callback stream_request_body( 31 conn(), 32 Types.request_ref(), 33 body_chunk :: iodata() | :eof | {:eof, trailing_headers :: Types.headers()} 34 ) :: 35 {:ok, conn()} | {:error, conn(), Types.error()} 36 37 @callback stream(conn(), term()) :: 38 {:ok, conn(), [Types.response()]} 39 | {:error, conn(), Types.error(), [Types.response()]} 40 | :unknown 41 42 @callback open_request_count(conn()) :: non_neg_integer() 43 44 @callback recv(conn(), byte_count :: non_neg_integer(), timeout()) :: 45 {:ok, conn(), [Types.response()]} 46 | {:error, conn(), Types.error(), [Types.response()]} 47 48 @callback set_mode(conn(), :active | :passive) :: {:ok, conn()} | {:error, Types.error()} 49 50 @callback controlling_process(conn(), pid()) :: {:ok, conn()} | {:error, Types.error()} 51 52 @callback put_private(conn(), key :: atom(), value :: term()) :: conn() 53 54 @callback get_private(conn(), key :: atom(), default_value :: term()) :: term() 55 56 @callback delete_private(conn(), key :: atom()) :: conn() 57 58 @callback get_socket(conn()) :: Mint.Types.socket() 59 60 @callback get_proxy_headers(conn()) :: Mint.Types.headers() 61 end