-module(lightspeed@transport). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/lightspeed/transport.gleam"). -export([label/1, bidirectional/1]). -export_type([transport/0]). -if(?OTP_RELEASE >= 27). -define(MODULEDOC(Str), -moduledoc(Str)). -define(DOC(Str), -doc(Str)). -else. -define(MODULEDOC(Str), -compile([])). -define(DOC(Str), -compile([])). -endif. ?MODULEDOC(" Transport abstractions.\n"). -type transport() :: web_socket | server_sent_events | long_polling | in_process. -file("src/lightspeed/transport.gleam", 12). ?DOC(" Return a stable transport label.\n"). -spec label(transport()) -> binary(). label(Transport) -> case Transport of web_socket -> <<"websocket"/utf8>>; server_sent_events -> <<"sse"/utf8>>; long_polling -> <<"long_polling"/utf8>>; in_process -> <<"in_process"/utf8>> end. -file("src/lightspeed/transport.gleam", 22). ?DOC(" True when the transport can send client and server messages over one channel.\n"). -spec bidirectional(transport()) -> boolean(). bidirectional(Transport) -> case Transport of web_socket -> true; in_process -> true; server_sent_events -> false; long_polling -> false end.