-module(chilp@api_typing). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]). -define(FILEPATH, "src/chilp/api_typing.gleam"). -export([account_decoder/0, status_decoder/0, status_context_decoder/0]). -export_type([status/0, account/0, mentions/0, status_context/0, status_tag/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(" Module to match and type JSON data from the endpoints, I just typed these by hand, so if innacurate, they might bug out.\n"). -type status() :: {status, binary(), binary(), binary(), boolean(), binary(), binary(), binary(), binary(), binary(), integer(), integer(), integer(), integer(), gleam@option:option(binary()), binary(), account(), list(binary()), list(mentions()), list(status_tag())}. -type account() :: {account, binary(), binary(), binary(), binary(), boolean(), boolean(), boolean(), boolean(), boolean(), binary(), binary(), binary(), binary(), binary(), binary(), binary(), binary(), integer(), integer(), integer(), binary()}. -type mentions() :: {mentions, binary(), binary(), binary(), binary()}. -type status_context() :: {status_context, list(status()), list(status())}. -type status_tag() :: {status_tag, binary(), binary()}. -file("src/chilp/api_typing.gleam", 183). -spec field_or( binary(), gleam@dynamic@decode:decoder(RFI), RFI, fun((RFI) -> gleam@dynamic@decode:decoder(RFK)) ) -> gleam@dynamic@decode:decoder(RFK). field_or(Field, Field_decoder, Default, Next) -> gleam@dynamic@decode:optional_field( Field, none, gleam@dynamic@decode:optional(Field_decoder), fun(Val) -> Next( begin _pipe = Val, gleam@option:unwrap(_pipe, Default) end ) end ). -file("src/chilp/api_typing.gleam", 128). -spec account_decoder() -> gleam@dynamic@decode:decoder(account()). account_decoder() -> gleam@dynamic@decode:field( <<"id"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, fun(Id) -> gleam@dynamic@decode:field( <<"username"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, fun(Username) -> gleam@dynamic@decode:field( <<"acct"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, fun(Acct) -> gleam@dynamic@decode:field( <<"display_name"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, fun(Display_name) -> gleam@dynamic@decode:field( <<"locked"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_bool/1}, fun(Locked) -> gleam@dynamic@decode:field( <<"bot"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_bool/1}, fun(Bot) -> field_or( <<"discoverable"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_bool/1}, false, fun(Discoverable) -> gleam@dynamic@decode:field( <<"indexable"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_bool/1}, fun(Indexable) -> gleam@dynamic@decode:field( <<"group"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_bool/1}, fun( Group ) -> gleam@dynamic@decode:field( <<"created_at"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, fun( Created_at ) -> gleam@dynamic@decode:field( <<"note"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, fun( Note ) -> gleam@dynamic@decode:field( <<"url"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, fun( Url ) -> gleam@dynamic@decode:field( <<"uri"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, fun( Uri ) -> gleam@dynamic@decode:field( <<"avatar"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, fun( Avatar ) -> gleam@dynamic@decode:field( <<"avatar_static"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, fun( Avatar_static ) -> gleam@dynamic@decode:field( <<"header"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, fun( Header ) -> gleam@dynamic@decode:field( <<"header_static"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, fun( Header_static ) -> gleam@dynamic@decode:field( <<"followers_count"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_int/1}, fun( Followers_count ) -> gleam@dynamic@decode:field( <<"following_count"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_int/1}, fun( Following_count ) -> gleam@dynamic@decode:field( <<"statuses_count"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_int/1}, fun( Statuses_count ) -> gleam@dynamic@decode:field( <<"last_status_at"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, fun( Last_status_at ) -> gleam@dynamic@decode:success( {account, Id, Username, Acct, Display_name, Locked, Bot, Discoverable, Indexable, Group, Created_at, Note, Url, Uri, Avatar, Avatar_static, Header, Header_static, Followers_count, Following_count, Statuses_count, Last_status_at} ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ). -file("src/chilp/api_typing.gleam", 201). -spec mentions_decoder() -> gleam@dynamic@decode:decoder(mentions()). mentions_decoder() -> gleam@dynamic@decode:field( <<"id"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, fun(Id) -> gleam@dynamic@decode:field( <<"username"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, fun(Username) -> gleam@dynamic@decode:field( <<"url"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, fun(Url) -> gleam@dynamic@decode:field( <<"acct"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, fun(Acct) -> gleam@dynamic@decode:success( {mentions, Id, Username, Url, Acct} ) end ) end ) end ) end ). -file("src/chilp/api_typing.gleam", 224). -spec status_tag_decoder() -> gleam@dynamic@decode:decoder(status_tag()). status_tag_decoder() -> gleam@dynamic@decode:field( <<"name"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, fun(Name) -> gleam@dynamic@decode:field( <<"url"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, fun(Url) -> gleam@dynamic@decode:success({status_tag, Name, Url}) end ) end ). -file("src/chilp/api_typing.gleam", 34). -spec status_decoder() -> gleam@dynamic@decode:decoder(status()). status_decoder() -> gleam@dynamic@decode:field( <<"id"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, fun(Id) -> gleam@dynamic@decode:field( <<"created_at"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, fun(Created_at) -> field_or( <<"in_reply_to_id"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, <<""/utf8>>, fun(In_reply_to_id) -> gleam@dynamic@decode:field( <<"sensitive"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_bool/1}, fun(Sensitive) -> gleam@dynamic@decode:field( <<"spoiler_text"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, fun(Spoiler_text) -> gleam@dynamic@decode:field( <<"visibility"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, fun(Visibility) -> field_or( <<"language"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, <<""/utf8>>, fun(Language) -> gleam@dynamic@decode:field( <<"uri"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, fun(Uri) -> gleam@dynamic@decode:field( <<"url"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, fun(Url) -> gleam@dynamic@decode:field( <<"replies_count"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_int/1}, fun( Replies_count ) -> gleam@dynamic@decode:field( <<"reblogs_count"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_int/1}, fun( Reblogs_count ) -> gleam@dynamic@decode:field( <<"favourites_count"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_int/1}, fun( Favourites_count ) -> gleam@dynamic@decode:field( <<"quotes_count"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_int/1}, fun( Quotes_count ) -> gleam@dynamic@decode:field( <<"edited_at"/utf8>>, gleam@dynamic@decode:optional( {decoder, fun gleam@dynamic@decode:decode_string/1} ), fun( Edited_at ) -> gleam@dynamic@decode:field( <<"content"/utf8>>, {decoder, fun gleam@dynamic@decode:decode_string/1}, fun( Content ) -> gleam@dynamic@decode:field( <<"account"/utf8>>, account_decoder( ), fun( Account ) -> gleam@dynamic@decode:field( <<"media_attachments"/utf8>>, gleam@dynamic@decode:list( {decoder, fun gleam@dynamic@decode:decode_string/1} ), fun( Media_attachments ) -> gleam@dynamic@decode:field( <<"mentions"/utf8>>, gleam@dynamic@decode:list( mentions_decoder( ) ), fun( Mentions ) -> field_or( <<"tags"/utf8>>, gleam@dynamic@decode:list( status_tag_decoder( ) ), [], fun( Tags ) -> gleam@dynamic@decode:success( {status, Id, Created_at, In_reply_to_id, Sensitive, Spoiler_text, Visibility, Language, Uri, Url, Replies_count, Reblogs_count, Favourites_count, Quotes_count, Edited_at, Content, Account, Media_attachments, Mentions, Tags} ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ) end ). -file("src/chilp/api_typing.gleam", 213). -spec status_context_decoder() -> gleam@dynamic@decode:decoder(status_context()). status_context_decoder() -> Dec = status_decoder(), gleam@dynamic@decode:field( <<"ancestors"/utf8>>, gleam@dynamic@decode:list(Dec), fun(Ancestors) -> gleam@dynamic@decode:field( <<"descendants"/utf8>>, gleam@dynamic@decode:list(Dec), fun(Descendants) -> gleam@dynamic@decode:success( {status_context, Ancestors, Descendants} ) end ) end ).