View Source Spaceboy.Header (Spaceboy v0.3.2)

Struct representing Gemini header response.

You should not create headers directly - all supported headers has functions with correct codes.

Summary

Utils

Correctly format the response header

Types

t()

Struct representing Gemini header data

Input

input(prompt)

@spec input(prompt :: String.t()) :: t()

sensitive_input(prompt)

@spec sensitive_input(prompt :: String.t()) :: t()

Success

success(mime \\ "text/gemini; charset=utf-8")

@spec success(mime :: String.t()) :: t()

Redirect

permanent_redirect(dest)

@spec permanent_redirect(dest :: String.t()) :: t()

redirect(dest)

@spec redirect(dest :: String.t()) :: t()

temporary_redirect(dest)

@spec temporary_redirect(dest :: String.t()) :: t()

Temporary Failure

cgi_error(reason \\ nil)

@spec cgi_error(reason :: String.t() | nil) :: t()

proxy_error(reason \\ nil)

@spec proxy_error(reason :: String.t() | nil) :: t()

server_unavailable(reason \\ nil)

@spec server_unavailable(reason :: String.t() | nil) :: t()

slow_down(message \\ nil)

@spec slow_down(message :: pos_integer() | String.t() | nil) :: t()

temporary_failure(reason \\ nil)

@spec temporary_failure(reason :: String.t() | nil) :: t()

Permanent Failure

bad_request(desc \\ nil)

@spec bad_request(desc :: String.t() | nil) :: t()

gone(desc \\ nil)

@spec gone(desc :: String.t() | nil) :: t()

not_found(desc \\ nil)

@spec not_found(desc :: String.t() | nil) :: t()

permanent_failure(desc \\ nil)

@spec permanent_failure(desc :: String.t() | nil) :: t()

proxy_request_refused(desc \\ nil)

@spec proxy_request_refused(desc :: String.t() | nil) :: t()

Client Certificate Required

certificate_not_authorized(prompt \\ nil)

@spec certificate_not_authorized(prompt :: String.t() | nil) :: t()

certificate_not_valid(prompt \\ nil)

@spec certificate_not_valid(prompt :: String.t() | nil) :: t()

client_certificate_required(prompt \\ nil)

@spec client_certificate_required(prompt :: String.t() | nil) :: t()

Utils

format(header)

@spec format(header :: t()) :: String.t()

Correctly format the response header

Examples

iex> "Test input" |> Spaceboy.Header.input() |> Spaceboy.Header.format()
"10 Test input\r\n"

iex> Spaceboy.Header.success() |> Spaceboy.Header.format()
"20 text/gemini; charset=utf-8\r\n"

Types

t()

@type t() :: %Spaceboy.Header{code: pos_integer(), meta: String.t() | nil}

Struct representing Gemini header data

Functions

is_error_code(code)

(macro)

is_status_code(code)

(macro)