-module(tobble). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([builder/0, add_row/2, set_title/2, to_list/1, title/1, build/1, build_with_internal/1, render_with_options/2, render/1, render_iter/2]). -export_type([table/0, builder/0, builder_error/0]). -opaque table() :: {table, tobble@internal@rows:rows(binary()), gleam@option:option(binary())}. -opaque builder() :: {builder, tobble@internal@builder:builder()}. -type builder_error() :: {inconsistent_column_count_error, integer(), integer()} | empty_table_error | empty_title_error. -file("/home/nick/Documents/code/tobble/src/tobble.gleam", 79). -spec builder() -> builder(). builder() -> {builder, tobble@internal@builder:new()}. -file("/home/nick/Documents/code/tobble/src/tobble.gleam", 86). -spec add_row(builder(), list(binary())) -> builder(). add_row(Builder, Columns) -> _pipe = erlang:element(2, Builder), _pipe@1 = tobble@internal@builder:add_row(_pipe, Columns), {builder, _pipe@1}. -file("/home/nick/Documents/code/tobble/src/tobble.gleam", 120). -spec set_title(builder(), binary()) -> builder(). set_title(Builder, Title) -> _pipe = erlang:element(2, Builder), _pipe@1 = tobble@internal@builder:set_title(_pipe, Title), {builder, _pipe@1}. -file("/home/nick/Documents/code/tobble/src/tobble.gleam", 284). -spec to_list(table()) -> list(list(binary())). to_list(Table) -> tobble@internal@rows:to_lists(erlang:element(2, Table)). -file("/home/nick/Documents/code/tobble/src/tobble.gleam", 308). -spec title(table()) -> gleam@option:option(binary()). title(Table) -> erlang:element(3, Table). -file("/home/nick/Documents/code/tobble/src/tobble.gleam", 312). -spec builder_error_from_internal(tobble@internal@builder:builder_error()) -> builder_error(). builder_error_from_internal(Error) -> case Error of {inconsistent_column_count_error, Expected, Got} -> {inconsistent_column_count_error, Expected, Got}; empty_table_error -> empty_table_error; empty_title_error -> empty_title_error end. -file("/home/nick/Documents/code/tobble/src/tobble.gleam", 128). -spec build(builder()) -> {ok, table()} | {error, builder_error()}. build(Builder) -> _pipe = erlang:element(2, Builder), _pipe@1 = tobble@internal@builder:to_result(_pipe), _pipe@2 = gleam@result:map( _pipe@1, fun(Built) -> {table, erlang:element(2, Built), erlang:element(3, Built)} end ), gleam@result:map_error(_pipe@2, fun builder_error_from_internal/1). -file("/home/nick/Documents/code/tobble/src/tobble.gleam", 136). -spec build_with_internal(tobble@internal@builder:builder()) -> {ok, table()} | {error, builder_error()}. build_with_internal(Builder) -> build({builder, Builder}). -file("/home/nick/Documents/code/tobble/src/tobble.gleam", 247). -spec render_with_options(table(), list(tobble@table_render_opts:option())) -> binary(). render_with_options(Table, Options) -> _pipe = tobble@internal@render:default_render_context( erlang:element(2, Table) ), _pipe@1 = tobble@table_render_opts:apply_options(_pipe, Options), _pipe@2 = tobble@internal@render:to_yielder( _pipe@1, erlang:element(2, Table), erlang:element(3, Table) ), _pipe@3 = gleam@yielder:map(_pipe@2, fun gleam_stdlib:identity/1), _pipe@4 = gleam@yielder:to_list(_pipe@3), _pipe@5 = gleam@string_tree:join(_pipe@4, <<"\n"/utf8>>), unicode:characters_to_binary(_pipe@5). -file("/home/nick/Documents/code/tobble/src/tobble.gleam", 168). -spec render(table()) -> binary(). render(Table) -> render_with_options(Table, []). -file("/home/nick/Documents/code/tobble/src/tobble.gleam", 203). -spec render_iter(table(), list(tobble@table_render_opts:option())) -> gleam@yielder:yielder(binary()). render_iter(Table, Options) -> _pipe = tobble@internal@render:default_render_context( erlang:element(2, Table) ), _pipe@1 = tobble@table_render_opts:apply_options(_pipe, Options), tobble@internal@render:to_yielder( _pipe@1, erlang:element(2, Table), erlang:element(3, Table) ).