-module(butterbidi@script@types@remote_reference). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/butterbidi/script/types/remote_reference.gleam"). -export([shared_reference_to_json/1, remote_reference_to_json/1, shared_reference_from_id/1, remote_reference_from_id/1, shared_reference_with_handle/2]). -export_type([remote_reference/0, shared_reference/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. -type remote_reference() :: {shared, shared_reference()}. -type shared_reference() :: {shared_reference, binary(), gleam@option:option(binary())}. -file("src/butterbidi/script/types/remote_reference.gleam", 28). -spec shared_reference_to_json(shared_reference()) -> gleam@json:json(). shared_reference_to_json(Shared_reference) -> {shared_reference, Shared_id, Handle} = Shared_reference, Handle@1 = case Handle of none -> []; {some, Value} -> [{<<"handle"/utf8>>, gleam@json:string(Value)}] end, gleam@json:object( begin _pipe = [{<<"sharedId"/utf8>>, gleam@json:string(Shared_id)}], lists:append(_pipe, Handle@1) end ). -file("src/butterbidi/script/types/remote_reference.gleam", 10). -spec remote_reference_to_json(remote_reference()) -> gleam@json:json(). remote_reference_to_json(Remote_reference) -> case Remote_reference of {shared, Shared_reference} -> shared_reference_to_json(Shared_reference) end. -file("src/butterbidi/script/types/remote_reference.gleam", 43). ?DOC(" Creates a new shared reference from a shared id\n"). -spec shared_reference_from_id(binary()) -> shared_reference(). shared_reference_from_id(Shared_id) -> {shared_reference, Shared_id, none}. -file("src/butterbidi/script/types/remote_reference.gleam", 20). -spec remote_reference_from_id(binary()) -> remote_reference(). remote_reference_from_id(Shared_id) -> {shared, shared_reference_from_id(Shared_id)}. -file("src/butterbidi/script/types/remote_reference.gleam", 47). -spec shared_reference_with_handle(shared_reference(), binary()) -> shared_reference(). shared_reference_with_handle(Shared_reference, Handle) -> {shared_reference, erlang:element(2, Shared_reference), {some, Handle}}.