Packages

A Gleam library for interacting with the Discord API

Current section

Files

Jump to
shimmer src nerf@gun.erl
Raw

src/nerf@gun.erl

-module(nerf@gun).
-compile(no_auto_import).
-export([open/2, open_erl/2, await_up/1, ws_upgrade/3, ws_send/2]).
-export_type([stream_reference/0, connection_pid/0, frame/0, ok_atom/0]).
-type stream_reference() :: any().
-type connection_pid() :: any().
-type frame() :: close | {text, binary()} | {binary, bitstring()}.
-type ok_atom() :: any().
-spec open(binary(), integer()) -> {ok, connection_pid()} |
{error, gleam@dynamic:dynamic()}.
open(Host, Port) ->
nerf_ffi:ws_open(gleam@erlang@charlist:from_string(Host), Port).
-spec open_erl(gleam@erlang@charlist:charlist(), integer()) -> {ok,
connection_pid()} |
{error, gleam@dynamic:dynamic()}.
open_erl(A, B) ->
nerf_ffi:ws_open(A, B).
-spec await_up(connection_pid()) -> {ok, gleam@dynamic:dynamic()} |
{error, gleam@dynamic:dynamic()}.
await_up(A) ->
gun:await_up(A).
-spec ws_upgrade(connection_pid(), binary(), list({binary(), binary()})) -> stream_reference().
ws_upgrade(A, B, C) ->
gun:ws_upgrade(A, B, C).
-spec ws_send(connection_pid(), frame()) -> nil.
ws_send(Pid, Frame) ->
gun:ws_send(Pid, Frame),
nil.