-module(nerf@gun). -compile([no_auto_import, nowarn_unused_vars]). -export([open_erl/2, open/2, await_up/1, ws_upgrade/3, ws_send/2]). -export_type([frame/0, stream_reference/0, connection_pid/0, ok_atom/0]). -type frame() :: close | {text, binary()} | {binary, bitstring()} | {text_builder, gleam@string_builder:string_builder()} | {binary_builder, gleam@bit_builder:bit_builder()}. -type stream_reference() :: any(). -type connection_pid() :: any(). -type ok_atom() :: any(). -spec open_erl(gleam@erlang@charlist:charlist(), integer()) -> {ok, connection_pid()} | {error, gleam@dynamic:dynamic()}. open_erl(Field@0, Field@1) -> gun:open(Field@0, Field@1). -spec open(binary(), integer()) -> {ok, connection_pid()} | {error, gleam@dynamic:dynamic()}. open(Host, Port) -> gun:open(unicode:characters_to_list(Host), Port). -spec await_up(connection_pid()) -> {ok, gleam@dynamic:dynamic()} | {error, gleam@dynamic:dynamic()}. await_up(Field@0) -> gun:await_up(Field@0). -spec ws_upgrade(connection_pid(), binary(), list({binary(), binary()})) -> stream_reference(). ws_upgrade(Field@0, Field@1, Field@2) -> gun:ws_upgrade(Field@0, Field@1, Field@2). -spec ws_send(connection_pid(), frame()) -> nil. ws_send(Pid, Frame) -> nerf_ffi:ws_send_erl(Pid, Frame), nil.