-module(telega@models@message_entity). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([decode/1, encode/1]). -export_type([message_entity/0]). -type message_entity() :: {message_entity, binary(), integer(), integer(), gleam@option:option(binary()), gleam@option:option(telega@models@user:user()), gleam@option:option(binary()), gleam@option:option(binary())}. -spec decode(gleam@dynamic:dynamic_()) -> {ok, message_entity()} | {error, list(gleam@dynamic:decode_error())}. decode(Json) -> _pipe = Json, (gleam@dynamic:decode7( fun(Field@0, Field@1, Field@2, Field@3, Field@4, Field@5, Field@6) -> {message_entity, Field@0, Field@1, Field@2, Field@3, Field@4, Field@5, Field@6} end, gleam@dynamic:field(<<"type"/utf8>>, fun gleam@dynamic:string/1), gleam@dynamic:field(<<"offset"/utf8>>, fun gleam@dynamic:int/1), gleam@dynamic:field(<<"length"/utf8>>, fun gleam@dynamic:int/1), gleam@dynamic:optional_field(<<"url"/utf8>>, fun gleam@dynamic:string/1), gleam@dynamic:optional_field( <<"user"/utf8>>, fun telega@models@user:decode/1 ), gleam@dynamic:optional_field( <<"language"/utf8>>, fun gleam@dynamic:string/1 ), gleam@dynamic:optional_field( <<"custom_emoji_id"/utf8>>, fun gleam@dynamic:string/1 ) ))(_pipe). -spec encode(message_entity()) -> gleam@json:json(). encode(Message_entity) -> Entity_type = [{<<"entity_type"/utf8>>, gleam@json:string(erlang:element(2, Message_entity))}], Offset = [{<<"offset"/utf8>>, gleam@json:int(erlang:element(3, Message_entity))}], Length = [{<<"length"/utf8>>, gleam@json:int(erlang:element(4, Message_entity))}], Url = telega@models@common:option_to_json_object_list( erlang:element(5, Message_entity), <<"url"/utf8>>, fun gleam@json:string/1 ), User = telega@models@common:option_to_json_object_list( erlang:element(6, Message_entity), <<"user"/utf8>>, fun telega@models@user:encode/1 ), Language = telega@models@common:option_to_json_object_list( erlang:element(7, Message_entity), <<"language"/utf8>>, fun gleam@json:string/1 ), Custom_emoji_id = telega@models@common:option_to_json_object_list( erlang:element(8, Message_entity), <<"custom_emoji_id"/utf8>>, fun gleam@json:string/1 ), _pipe = [Entity_type, Offset, Length, Url, User, Language, Custom_emoji_id], _pipe@1 = gleam@list:concat(_pipe), gleam@json:object(_pipe@1).