create-mendix-widget-gleam 2.0.14 → 2.0.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/package.json +5 -1
- package/src/index.mjs +22 -7
- package/template/gleam.toml +1 -1
- package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@command.cache +0 -0
- package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@command.cache_inline +0 -0
- package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@command.cache_meta +0 -0
- package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@cursor.cache +0 -0
- package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@cursor.cache_inline +0 -0
- package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@cursor.cache_meta +0 -0
- package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@event.cache +0 -0
- package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@event.cache_inline +0 -0
- package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@event.cache_meta +0 -0
- package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@internal@consts.cache +0 -0
- package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@internal@consts.cache_inline +0 -0
- package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@internal@consts.cache_meta +0 -0
- package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@stdout.cache +0 -0
- package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@stdout.cache_inline +0 -0
- package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@stdout.cache_meta +0 -0
- package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@style.cache +0 -0
- package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@style.cache_inline +0 -0
- package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@style.cache_meta +0 -0
- package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@terminal.cache +0 -0
- package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@terminal.cache_inline +0 -0
- package/tui/build/dev/javascript/etch/_gleam_artefacts/etch@terminal.cache_meta +0 -0
- package/tui/build/dev/javascript/etch/etch/command.mjs +479 -0
- package/tui/build/dev/javascript/etch/etch/cursor.mjs +164 -0
- package/tui/build/dev/javascript/etch/etch/event.mjs +2399 -0
- package/tui/build/dev/javascript/etch/etch/internal/consts.mjs +3 -0
- package/tui/build/dev/javascript/etch/etch/stdout.mjs +375 -0
- package/tui/build/dev/javascript/etch/etch/style.mjs +741 -0
- package/tui/build/dev/javascript/etch/etch/terminal.mjs +137 -0
- package/tui/build/dev/javascript/etch/gleam.mjs +1 -0
- package/tui/build/dev/javascript/etch/input/event_ffi.erl +73 -0
- package/tui/build/dev/javascript/etch/input/input_ffi.mjs +192 -0
- package/tui/build/dev/javascript/etch/input/signal_handler.erl +33 -0
- package/tui/build/dev/javascript/etch/terminal/terminal_ffi.erl +22 -0
- package/tui/build/dev/javascript/etch/terminal/terminal_ffi.mjs +37 -0
- package/tui/build/dev/javascript/etch/terminal/tty_state.erl +29 -0
- package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@application.cache +0 -0
- package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@application.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@application.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache +0 -0
- package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@atom.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache +0 -0
- package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@charlist.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache +0 -0
- package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@node.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@port.cache +0 -0
- package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@port.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@port.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache +0 -0
- package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@process.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@reference.cache +0 -0
- package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@reference.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_erlang/_gleam_artefacts/gleam@erlang@reference.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/application.mjs +38 -0
- package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/atom.mjs +2 -0
- package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/charlist.mjs +1 -0
- package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/node.mjs +12 -0
- package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/port.mjs +1 -0
- package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/process.mjs +161 -0
- package/tui/build/dev/javascript/gleam_erlang/gleam/erlang/reference.mjs +1 -0
- package/tui/build/dev/javascript/gleam_erlang/gleam.mjs +1 -0
- package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@application.erl +43 -0
- package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@atom.erl +94 -0
- package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@charlist.erl +42 -0
- package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@node.erl +80 -0
- package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@port.erl +8 -0
- package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@process.erl +868 -0
- package/tui/build/dev/javascript/gleam_erlang/gleam@erlang@reference.erl +21 -0
- package/tui/build/dev/javascript/gleam_erlang/gleam_erlang_ffi.erl +164 -0
- package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@array.cache +0 -0
- package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@array.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@array.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@promise.cache +0 -0
- package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@promise.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@promise.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@symbol.cache +0 -0
- package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@symbol.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_javascript/_gleam_artefacts/gleam@javascript@symbol.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_javascript/gleam/javascript/array.mjs +24 -0
- package/tui/build/dev/javascript/gleam_javascript/gleam/javascript/promise.mjs +105 -0
- package/tui/build/dev/javascript/gleam_javascript/gleam/javascript/symbol.mjs +7 -0
- package/tui/build/dev/javascript/gleam_javascript/gleam.mjs +1 -0
- package/tui/build/dev/javascript/gleam_javascript/gleam_javascript_ffi.mjs +133 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bit_array.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bool.cache +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bool.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bool.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bytes_tree.cache +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bytes_tree.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@bytes_tree.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dict.cache +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dict.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dict.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic@decode.cache +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic@decode.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@dynamic@decode.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@float.cache +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@float.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@float.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@function.cache +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@function.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@function.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@int.cache +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@int.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@int.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@io.cache +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@io.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@io.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@list.cache +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@list.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@list.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@option.cache +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@option.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@option.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@order.cache +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@order.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@order.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@pair.cache +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@pair.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@pair.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@result.cache +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@result.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@result.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@set.cache +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@set.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@set.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string.cache +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string_tree.cache +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string_tree.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@string_tree.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@uri.cache +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@uri.cache_inline +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/_gleam_artefacts/gleam@uri.cache_meta +0 -0
- package/tui/build/dev/javascript/gleam_stdlib/dict.mjs +710 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam/bit_array.mjs +286 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam/bool.mjs +295 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam/bytes_tree.mjs +225 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam/dict.mjs +455 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam/dynamic/decode.mjs +993 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam/dynamic.mjs +35 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam/float.mjs +528 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam/function.mjs +6 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam/int.mjs +764 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam/io.mjs +8 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam/list.mjs +3063 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam/option.mjs +386 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam/order.mjs +166 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam/pair.mjs +96 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam/result.mjs +448 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam/set.mjs +413 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam/string.mjs +695 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam/string_tree.mjs +128 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam/uri.mjs +1151 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam.mjs +1 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam@bit_array.erl +347 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam@bool.erl +334 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam@bytes_tree.erl +211 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam@dict.erl +513 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam@dynamic.erl +105 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam@dynamic@decode.erl +1114 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam@float.erl +711 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam@function.erl +18 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam@int.erl +972 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam@io.erl +76 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam@list.erl +2735 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam@option.erl +381 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam@order.erl +188 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam@pair.erl +104 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam@result.erl +500 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam@set.erl +430 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam@string.erl +964 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam@string_tree.erl +202 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam@uri.erl +1042 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam_stdlib.erl +534 -0
- package/tui/build/dev/javascript/gleam_stdlib/gleam_stdlib.mjs +1133 -0
- package/tui/build/dev/javascript/gleam_version +1 -0
- package/tui/build/dev/javascript/prelude.mjs +1575 -0
- package/tui/build/dev/javascript/tui/_gleam_artefacts/tui.cache +0 -0
- package/tui/build/dev/javascript/tui/_gleam_artefacts/tui.cache_inline +0 -0
- package/tui/build/dev/javascript/tui/_gleam_artefacts/tui.cache_meta +0 -0
- package/tui/build/dev/javascript/tui/_gleam_artefacts/tui.cache_warnings +0 -0
- package/tui/build/dev/javascript/tui/_gleam_artefacts/tui@prompt.cache +0 -0
- package/tui/build/dev/javascript/tui/_gleam_artefacts/tui@prompt.cache_inline +0 -0
- package/tui/build/dev/javascript/tui/_gleam_artefacts/tui@prompt.cache_meta +0 -0
- package/tui/build/dev/javascript/tui/_gleam_artefacts/tui@prompt.cache_warnings +0 -0
- package/tui/build/dev/javascript/tui/gleam.mjs +1 -0
- package/tui/build/dev/javascript/tui/tui/prompt.mjs +521 -0
- package/tui/build/dev/javascript/tui/tui.mjs +334 -0
- package/tui/build/dev/javascript/tui/tui_ffi.mjs +32 -0
|
@@ -0,0 +1,211 @@
|
|
|
1
|
+
-module(gleam@bytes_tree).
|
|
2
|
+
-compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch, inline]).
|
|
3
|
+
-define(FILEPATH, "src/gleam/bytes_tree.gleam").
|
|
4
|
+
-export([append_tree/2, prepend_tree/2, concat/1, new/0, from_string/1, prepend_string/2, append_string/2, from_string_tree/1, from_bit_array/1, prepend/2, append/2, concat_bit_arrays/1, to_bit_array/1, byte_size/1]).
|
|
5
|
+
-export_type([bytes_tree/0]).
|
|
6
|
+
|
|
7
|
+
-if(?OTP_RELEASE >= 27).
|
|
8
|
+
-define(MODULEDOC(Str), -moduledoc(Str)).
|
|
9
|
+
-define(DOC(Str), -doc(Str)).
|
|
10
|
+
-else.
|
|
11
|
+
-define(MODULEDOC(Str), -compile([])).
|
|
12
|
+
-define(DOC(Str), -compile([])).
|
|
13
|
+
-endif.
|
|
14
|
+
|
|
15
|
+
?MODULEDOC(
|
|
16
|
+
" `BytesTree` is a type used for efficiently building binary content to be\n"
|
|
17
|
+
" written to a file or a socket. Internally it is represented as a tree so to\n"
|
|
18
|
+
" append or prepend to a bytes tree is a constant time operation that\n"
|
|
19
|
+
" allocates a new node in the tree without copying any of the content. When\n"
|
|
20
|
+
" writing to an output stream the tree is traversed and the content is sent\n"
|
|
21
|
+
" directly rather than copying it into a single buffer beforehand.\n"
|
|
22
|
+
"\n"
|
|
23
|
+
" If we append one bit array to another the bit arrays must be copied to a\n"
|
|
24
|
+
" new location in memory so that they can sit together. This behaviour\n"
|
|
25
|
+
" enables efficient reading of the data but copying can be expensive,\n"
|
|
26
|
+
" especially if we want to join many bit arrays together.\n"
|
|
27
|
+
"\n"
|
|
28
|
+
" BytesTree is different in that it can be joined together in constant\n"
|
|
29
|
+
" time using minimal memory, and then can be efficiently converted to a\n"
|
|
30
|
+
" bit array using the `to_bit_array` function.\n"
|
|
31
|
+
"\n"
|
|
32
|
+
" Byte trees are always byte aligned, so that a number of bits that is not\n"
|
|
33
|
+
" divisible by 8 will be padded with 0s.\n"
|
|
34
|
+
"\n"
|
|
35
|
+
" On Erlang this type is compatible with Erlang's iolists.\n"
|
|
36
|
+
).
|
|
37
|
+
|
|
38
|
+
-opaque bytes_tree() :: {bytes, bitstring()} |
|
|
39
|
+
{text, gleam@string_tree:string_tree()} |
|
|
40
|
+
{many, list(bytes_tree())}.
|
|
41
|
+
|
|
42
|
+
-file("src/gleam/bytes_tree.gleam", 68).
|
|
43
|
+
?DOC(
|
|
44
|
+
" Appends a bytes tree onto the end of another.\n"
|
|
45
|
+
"\n"
|
|
46
|
+
" Runs in constant time.\n"
|
|
47
|
+
).
|
|
48
|
+
-spec append_tree(bytes_tree(), bytes_tree()) -> bytes_tree().
|
|
49
|
+
append_tree(First, Second) ->
|
|
50
|
+
gleam_stdlib:iodata_append(First, Second).
|
|
51
|
+
|
|
52
|
+
-file("src/gleam/bytes_tree.gleam", 59).
|
|
53
|
+
?DOC(
|
|
54
|
+
" Prepends a bytes tree onto the start of another.\n"
|
|
55
|
+
"\n"
|
|
56
|
+
" Runs in constant time.\n"
|
|
57
|
+
).
|
|
58
|
+
-spec prepend_tree(bytes_tree(), bytes_tree()) -> bytes_tree().
|
|
59
|
+
prepend_tree(Second, First) ->
|
|
60
|
+
gleam_stdlib:iodata_append(First, Second).
|
|
61
|
+
|
|
62
|
+
-file("src/gleam/bytes_tree.gleam", 98).
|
|
63
|
+
?DOC(
|
|
64
|
+
" Joins a list of bytes trees into a single one.\n"
|
|
65
|
+
"\n"
|
|
66
|
+
" Runs in constant time.\n"
|
|
67
|
+
).
|
|
68
|
+
-spec concat(list(bytes_tree())) -> bytes_tree().
|
|
69
|
+
concat(Trees) ->
|
|
70
|
+
gleam_stdlib:identity(Trees).
|
|
71
|
+
|
|
72
|
+
-file("src/gleam/bytes_tree.gleam", 35).
|
|
73
|
+
?DOC(
|
|
74
|
+
" Create an empty `BytesTree`. Useful as the start of a pipe chaining many\n"
|
|
75
|
+
" trees together.\n"
|
|
76
|
+
).
|
|
77
|
+
-spec new() -> bytes_tree().
|
|
78
|
+
new() ->
|
|
79
|
+
gleam_stdlib:identity([]).
|
|
80
|
+
|
|
81
|
+
-file("src/gleam/bytes_tree.gleam", 118).
|
|
82
|
+
?DOC(
|
|
83
|
+
" Creates a new bytes tree from a string.\n"
|
|
84
|
+
"\n"
|
|
85
|
+
" Runs in constant time when running on Erlang.\n"
|
|
86
|
+
" Runs in linear time otherwise.\n"
|
|
87
|
+
).
|
|
88
|
+
-spec from_string(binary()) -> bytes_tree().
|
|
89
|
+
from_string(String) ->
|
|
90
|
+
gleam_stdlib:wrap_list(String).
|
|
91
|
+
|
|
92
|
+
-file("src/gleam/bytes_tree.gleam", 80).
|
|
93
|
+
?DOC(
|
|
94
|
+
" Prepends a string onto the start of a bytes tree.\n"
|
|
95
|
+
"\n"
|
|
96
|
+
" Runs in constant time when running on Erlang.\n"
|
|
97
|
+
" Runs in linear time with the length of the string otherwise.\n"
|
|
98
|
+
).
|
|
99
|
+
-spec prepend_string(bytes_tree(), binary()) -> bytes_tree().
|
|
100
|
+
prepend_string(Second, First) ->
|
|
101
|
+
gleam_stdlib:iodata_append(gleam_stdlib:wrap_list(First), Second).
|
|
102
|
+
|
|
103
|
+
-file("src/gleam/bytes_tree.gleam", 89).
|
|
104
|
+
?DOC(
|
|
105
|
+
" Appends a string onto the end of a bytes tree.\n"
|
|
106
|
+
"\n"
|
|
107
|
+
" Runs in constant time when running on Erlang.\n"
|
|
108
|
+
" Runs in linear time with the length of the string otherwise.\n"
|
|
109
|
+
).
|
|
110
|
+
-spec append_string(bytes_tree(), binary()) -> bytes_tree().
|
|
111
|
+
append_string(First, Second) ->
|
|
112
|
+
gleam_stdlib:iodata_append(First, gleam_stdlib:wrap_list(Second)).
|
|
113
|
+
|
|
114
|
+
-file("src/gleam/bytes_tree.gleam", 128).
|
|
115
|
+
?DOC(
|
|
116
|
+
" Creates a new bytes tree from a string tree.\n"
|
|
117
|
+
"\n"
|
|
118
|
+
" Runs in constant time when running on Erlang.\n"
|
|
119
|
+
" Runs in linear time otherwise.\n"
|
|
120
|
+
).
|
|
121
|
+
-spec from_string_tree(gleam@string_tree:string_tree()) -> bytes_tree().
|
|
122
|
+
from_string_tree(Tree) ->
|
|
123
|
+
gleam_stdlib:wrap_list(Tree).
|
|
124
|
+
|
|
125
|
+
-file("src/gleam/bytes_tree.gleam", 136).
|
|
126
|
+
?DOC(
|
|
127
|
+
" Creates a new bytes tree from a bit array.\n"
|
|
128
|
+
"\n"
|
|
129
|
+
" Runs in constant time.\n"
|
|
130
|
+
).
|
|
131
|
+
-spec from_bit_array(bitstring()) -> bytes_tree().
|
|
132
|
+
from_bit_array(Bits) ->
|
|
133
|
+
_pipe = Bits,
|
|
134
|
+
_pipe@1 = gleam_stdlib:bit_array_pad_to_bytes(_pipe),
|
|
135
|
+
gleam_stdlib:wrap_list(_pipe@1).
|
|
136
|
+
|
|
137
|
+
-file("src/gleam/bytes_tree.gleam", 43).
|
|
138
|
+
?DOC(
|
|
139
|
+
" Prepends a bit array to the start of a bytes tree.\n"
|
|
140
|
+
"\n"
|
|
141
|
+
" Runs in constant time.\n"
|
|
142
|
+
).
|
|
143
|
+
-spec prepend(bytes_tree(), bitstring()) -> bytes_tree().
|
|
144
|
+
prepend(Second, First) ->
|
|
145
|
+
gleam_stdlib:iodata_append(from_bit_array(First), Second).
|
|
146
|
+
|
|
147
|
+
-file("src/gleam/bytes_tree.gleam", 51).
|
|
148
|
+
?DOC(
|
|
149
|
+
" Appends a bit array to the end of a bytes tree.\n"
|
|
150
|
+
"\n"
|
|
151
|
+
" Runs in constant time.\n"
|
|
152
|
+
).
|
|
153
|
+
-spec append(bytes_tree(), bitstring()) -> bytes_tree().
|
|
154
|
+
append(First, Second) ->
|
|
155
|
+
gleam_stdlib:iodata_append(First, from_bit_array(Second)).
|
|
156
|
+
|
|
157
|
+
-file("src/gleam/bytes_tree.gleam", 106).
|
|
158
|
+
?DOC(
|
|
159
|
+
" Joins a list of bit arrays into a single bytes tree.\n"
|
|
160
|
+
"\n"
|
|
161
|
+
" Runs in constant time.\n"
|
|
162
|
+
).
|
|
163
|
+
-spec concat_bit_arrays(list(bitstring())) -> bytes_tree().
|
|
164
|
+
concat_bit_arrays(Bits) ->
|
|
165
|
+
_pipe = Bits,
|
|
166
|
+
_pipe@1 = gleam@list:map(_pipe, fun from_bit_array/1),
|
|
167
|
+
gleam_stdlib:identity(_pipe@1).
|
|
168
|
+
|
|
169
|
+
-file("src/gleam/bytes_tree.gleam", 162).
|
|
170
|
+
-spec to_list(list(list(bytes_tree())), list(bitstring())) -> list(bitstring()).
|
|
171
|
+
to_list(Stack, Acc) ->
|
|
172
|
+
case Stack of
|
|
173
|
+
[] ->
|
|
174
|
+
Acc;
|
|
175
|
+
|
|
176
|
+
[[] | Remaining_stack] ->
|
|
177
|
+
to_list(Remaining_stack, Acc);
|
|
178
|
+
|
|
179
|
+
[[{bytes, Bits} | Rest] | Remaining_stack@1] ->
|
|
180
|
+
to_list([Rest | Remaining_stack@1], [Bits | Acc]);
|
|
181
|
+
|
|
182
|
+
[[{text, Tree} | Rest@1] | Remaining_stack@2] ->
|
|
183
|
+
Bits@1 = gleam_stdlib:identity(unicode:characters_to_binary(Tree)),
|
|
184
|
+
to_list([Rest@1 | Remaining_stack@2], [Bits@1 | Acc]);
|
|
185
|
+
|
|
186
|
+
[[{many, Trees} | Rest@2] | Remaining_stack@3] ->
|
|
187
|
+
to_list([Trees, Rest@2 | Remaining_stack@3], Acc)
|
|
188
|
+
end.
|
|
189
|
+
|
|
190
|
+
-file("src/gleam/bytes_tree.gleam", 155).
|
|
191
|
+
?DOC(
|
|
192
|
+
" Turns a bytes tree into a bit array.\n"
|
|
193
|
+
"\n"
|
|
194
|
+
" Runs in linear time.\n"
|
|
195
|
+
"\n"
|
|
196
|
+
" When running on Erlang this function is implemented natively by the\n"
|
|
197
|
+
" virtual machine and is highly optimised.\n"
|
|
198
|
+
).
|
|
199
|
+
-spec to_bit_array(bytes_tree()) -> bitstring().
|
|
200
|
+
to_bit_array(Tree) ->
|
|
201
|
+
erlang:list_to_bitstring(Tree).
|
|
202
|
+
|
|
203
|
+
-file("src/gleam/bytes_tree.gleam", 186).
|
|
204
|
+
?DOC(
|
|
205
|
+
" Returns the size of the bytes tree's content in bytes.\n"
|
|
206
|
+
"\n"
|
|
207
|
+
" Runs in linear time.\n"
|
|
208
|
+
).
|
|
209
|
+
-spec byte_size(bytes_tree()) -> integer().
|
|
210
|
+
byte_size(Tree) ->
|
|
211
|
+
erlang:iolist_size(Tree).
|