View Source NLdoc.Stream.Message.Header (NLdoc.Stream v1.0.0)
Stream Consumer
Summary
Functions
Finds the header tuple in the given list matching the specified name and type.
Searches for a header by name and type and returns its value.
Extracts the value from a header tuple.
Types
Functions
@spec find(headers :: [t()], name :: String.t(), type :: :long) :: numeric_header() | nil
@spec find(headers :: [t()], name :: String.t(), type :: :longstr) :: string_header() | nil
Finds the header tuple in the given list matching the specified name and type.
Returns the matching header tuple or nil if not found.
Examples
iex> headers = [
...> {"x-stream-offset", :long, 42},
...> {"x-stream-filter-value", :longstr, "uuid"}
...> ]
iex> NLdoc.Stream.Message.Header.find(headers, "x-stream-offset", :long)
{"x-stream-offset", :long, 42}
iex> NLdoc.Stream.Message.Header.find(headers, "x-stream-filter-value", :longstr)
{"x-stream-filter-value", :longstr, "uuid"}
iex> NLdoc.Stream.Message.Header.find(headers, "x-stream-filter-value", :long)
nil
iex> NLdoc.Stream.Message.Header.find(headers, "non-existent", :long)
nil
@spec find_value(headers :: [t()], name :: String.t(), type :: :long) :: integer() | nil
@spec find_value(headers :: [t()], name :: String.t(), type :: :longstr) :: String.t() | nil
Searches for a header by name and type and returns its value.
Returns the value for the header if found, or nil if no matching header exists.
Examples
iex> headers = [
...> {"x-stream-offset", :long, 42},
...> {"x-stream-filter-value", :longstr, "uuid"}
...> ]
iex> NLdoc.Stream.Message.Header.find_value(headers, "x-stream-offset", :long)
42
iex> NLdoc.Stream.Message.Header.find_value(headers, "x-stream-filter-value", :longstr)
"uuid"
iex> NLdoc.Stream.Message.Header.find_value(headers, "x-stream-filter-value", :long)
nil
iex> NLdoc.Stream.Message.Header.find_value(headers, "non-existent", :long)
nil
@spec value(header :: numeric_header()) :: integer()
@spec value(header :: string_header()) :: String.t()
@spec value(header :: nil) :: nil
Extracts the value from a header tuple.
Returns the header's value if the header is present, or nil if the header is nil.
Examples
iex> NLdoc.Stream.Message.Header.value({"x-stream-offset", :long, 42})
42
iex> NLdoc.Stream.Message.Header.value(nil)
nil