You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@arrow.apache.org by gi...@apache.org on 2026/07/23 02:26:07 UTC
(arrow-erlang) 01/01: deploy: 362871198b1a22ac09c35faea7e08e58dd783be8
This is an automated email from the ASF dual-hosted git repository.
github-actions[bot] pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/arrow-erlang.git
commit 1b4c7bd6f740ebbe5f85f28f52aec4e43af1f806
Author: kou <ko...@users.noreply.github.com>
AuthorDate: Thu Jul 23 02:26:01 2026 +0000
deploy: 362871198b1a22ac09c35faea7e08e58dd783be8
---
.asf.yaml | 59 +
.htaccess | 20 +
.nojekyll | 0
main/404.html | 123 ++
main/api-reference.html | 289 +++++
main/arrow.epub | Bin 0 -> 57647 bytes
main/arrow.html | 130 +++
main/arrow_array.html | 725 ++++++++++++
main/arrow_bitmap.html | 213 ++++
main/arrow_buffer.html | 426 +++++++
main/arrow_fixed_list_array.html | 213 ++++
main/arrow_fixed_primitive_array.html | 215 ++++
main/arrow_format_nif.html | 278 +++++
main/arrow_ipc_field.html | 354 ++++++
main/arrow_ipc_file.html | 315 +++++
main/arrow_ipc_message.html | 560 +++++++++
main/arrow_ipc_record_batch.html | 342 ++++++
main/arrow_ipc_schema.html | 345 ++++++
main/arrow_ipc_type.html | 440 +++++++
main/arrow_offsets.html | 252 ++++
main/arrow_type.html | 1207 ++++++++++++++++++++
main/arrow_variable_binary_array.html | 243 ++++
main/arrow_variable_list_array.html | 207 ++++
main/dist/html-DPJLHKSM.js | 222 ++++
main/dist/html-erlang-DQDXQC7W.css | 6 +
main/dist/lato-latin-400-normal-W7754I4D.woff2 | Bin 0 -> 23580 bytes
main/dist/lato-latin-700-normal-2XVSBPG4.woff2 | Bin 0 -> 23040 bytes
main/dist/lato-latin-ext-400-normal-N27NCBWW.woff2 | Bin 0 -> 5472 bytes
main/dist/lato-latin-ext-700-normal-Q2L5DVMW.woff2 | Bin 0 -> 5368 bytes
main/dist/remixicon-QPNJX265.woff2 | Bin 0 -> 2096 bytes
main/dist/search_data-BE868044.js | 1 +
main/dist/sidebar_items-DDBC4286.js | 1 +
main/index.html | 10 +
main/license.html | 359 ++++++
main/quick-run-through.html | 224 ++++
main/quick-run-through.livemd | 214 ++++
main/readme.html | 161 +++
main/search.html | 121 ++
38 files changed, 8275 insertions(+)
diff --git a/.asf.yaml b/.asf.yaml
new file mode 100644
index 0000000..0866033
--- /dev/null
+++ b/.asf.yaml
@@ -0,0 +1,59 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+# https://github.com/apache/infrastructure-asfyaml
+github:
+ description: "Official Erlang implementation of Apache Arrow"
+ homepage: https://arrow.apache.org/erlang/main/
+ labels:
+ - apache-arrow
+ - erlang
+
+ features:
+ issues: true
+ projects: true
+ discussions: true
+
+ enabled_merge_buttons:
+ merge: false
+ rebase: true
+ squash: true
+
+ protected_branches:
+ main:
+ required_linear_history: true
+
+ collaborators:
+ - Benjamin-Philip
+
+ copilot_code_review:
+ enabled: true
+ review_drafts: false
+ review_on_push: true
+
+notifications:
+ commits: commits@arrow.apache.org
+ issues_status: issues@arrow.apache.org
+ issues_comment: github@arrow.apache.org
+ pullrequests: github@arrow.apache.org
+ discussions: user@arrow.apache.org
+
+# publishes the content of the `asf-site` branch to
+# https://arrow.apache.org/erlang/
+publish:
+ whoami: asf-site
+ subdir: erlang
diff --git a/.htaccess b/.htaccess
new file mode 100644
index 0000000..08bc1b5
--- /dev/null
+++ b/.htaccess
@@ -0,0 +1,20 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+ErrorDocument 404 /erlang/main/404.html
+
+RedirectMatch permanent ^/erlang/(?!main/?)(.*)$ https://arrow.hexdocs.pm/$1
diff --git a/.nojekyll b/.nojekyll
new file mode 100644
index 0000000..e69de29
diff --git a/main/404.html b/main/404.html
new file mode 100644
index 0000000..ad81b9d
--- /dev/null
+++ b/main/404.html
@@ -0,0 +1,123 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="generator" content="ExDoc v0.38.2">
+ <meta name="project" content="arrow v0.1.0">
+
+
+ <meta name="robots" content="noindex">
+
+ <title>404 — arrow v0.1.0</title>
+
+ <link rel="stylesheet" href="dist/html-erlang-DQDXQC7W.css" />
+
+ <script defer src="dist/sidebar_items-DDBC4286.js"></script>
+ <script defer src="docs_config.js"></script>
+ <script defer src="dist/html-DPJLHKSM.js"></script>
+
+ </head>
+ <body>
+ <script>(()=>{var t="ex_doc:settings",e="dark";var o="dark",s="light";var E="sidebar_state",n="closed";var r="sidebar_width";var a="sidebar-open";var i=new URLSearchParams(window.location.search),S=i.get("theme")||JSON.parse(localStorage.getItem(t)||"{}").theme;(S===o||S!==s&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&document.body.classList.add(e);var d=sessionStorage.getItem(E),A=d!==n&&!window.matchMedia(`screen and (max-width: ${768}px)`).matches;document.body.cl [...]
+</script>
+
+<div class="body-wrapper">
+
+<button id="sidebar-menu" class="sidebar-button sidebar-toggle" aria-label="toggle sidebar" aria-controls="sidebar">
+ <i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i>
+</button>
+
+<nav id="sidebar" class="sidebar">
+
+ <div class="sidebar-header">
+ <div class="sidebar-projectInfo">
+
+ <div>
+ <a href="https://github.com/apache/arrow-erlang" class="sidebar-projectName" translate="no">
+arrow
+ </a>
+ <div class="sidebar-projectVersion" translate="no">
+ v0.1.0
+ </div>
+ </div>
+ </div>
+ <ul id="sidebar-list-nav" class="sidebar-list-nav" role="tablist" data-extras=""></ul>
+ </div>
+</nav>
+
+<output role="status" id="toast"></output>
+
+<main class="content page-extra" id="main" data-type="extras">
+ <div id="content" class="content-inner">
+ <div class="top-search">
+ <div class="search-settings">
+ <form class="search-bar" action="search.html">
+ <label class="search-label">
+ <span class="sr-only">Search documentation of arrow</span>
+ <input name="q" type="text" class="search-input" placeholder="Press / to search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
+ </label>
+ <button type="submit" class="search-button" aria-label="Submit Search" tabindex="-1">
+ <i class="ri-search-2-line ri-lg" aria-hidden="true"></i>
+ </button>
+ <button type="button" tabindex="-1" class="search-close-button" aria-hidden="true">
+ <i class="ri-close-line ri-lg" title="Cancel search"></i>
+ </button>
+ </form>
+ <div class="autocomplete">
+ </div>
+ <button class="icon-settings display-settings">
+ <i class="ri-settings-3-line"></i>
+ <span class="sr-only">Settings</span>
+ </button>
+ </div>
+ </div>
+
+<h1>
+ <span>Page not found</span>
+</h1>
+
+<p>Sorry, but the page you were trying to get to, does not exist. You
+may want to try searching this site using the sidebar
+
+ or using our <a href="api-reference.html">API Reference</a> page
+
+to find what you were looking for.</p>
+ <footer class="footer">
+ <p>
+
+ <span class="line">
+ <a href="https://hex.pm/packages/arrow/0.1.0" class="footer-hex-package">Hex Package</a>
+
+ <a href="https://preview.hex.pm/preview/arrow/0.1.0">Hex Preview</a>
+
+ </span>
+
+ <span class="line">
+ <button class="a-main footer-button display-quick-switch" title="Search HexDocs packages">
+ Search HexDocs
+ </button>
+
+ <a href="arrow.epub" title="ePub version">
+ Download ePub version
+ </a>
+
+ </span>
+ </p>
+
+ <p class="built-using">
+ Built using
+ <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.38.2) for the
+
+ <a href="https://erlang.org" title="Erlang" target="_blank" translate="no">Erlang programming language</a>
+
+ </p>
+
+ </footer>
+ </div>
+</main>
+</div>
+
+ </body>
+</html>
diff --git a/main/api-reference.html b/main/api-reference.html
new file mode 100644
index 0000000..617bf07
--- /dev/null
+++ b/main/api-reference.html
@@ -0,0 +1,289 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="generator" content="ExDoc v0.38.2">
+ <meta name="project" content="arrow v0.1.0">
+
+
+ <title>API Reference — arrow v0.1.0</title>
+
+ <link rel="stylesheet" href="dist/html-erlang-DQDXQC7W.css" />
+
+ <script defer src="dist/sidebar_items-DDBC4286.js"></script>
+ <script defer src="docs_config.js"></script>
+ <script defer src="dist/html-DPJLHKSM.js"></script>
+
+ </head>
+ <body>
+ <script>(()=>{var t="ex_doc:settings",e="dark";var o="dark",s="light";var E="sidebar_state",n="closed";var r="sidebar_width";var a="sidebar-open";var i=new URLSearchParams(window.location.search),S=i.get("theme")||JSON.parse(localStorage.getItem(t)||"{}").theme;(S===o||S!==s&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&document.body.classList.add(e);var d=sessionStorage.getItem(E),A=d!==n&&!window.matchMedia(`screen and (max-width: ${768}px)`).matches;document.body.cl [...]
+</script>
+
+<div class="body-wrapper">
+
+<button id="sidebar-menu" class="sidebar-button sidebar-toggle" aria-label="toggle sidebar" aria-controls="sidebar">
+ <i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i>
+</button>
+
+<nav id="sidebar" class="sidebar">
+
+ <div class="sidebar-header">
+ <div class="sidebar-projectInfo">
+
+ <div>
+ <a href="https://github.com/apache/arrow-erlang" class="sidebar-projectName" translate="no">
+arrow
+ </a>
+ <div class="sidebar-projectVersion" translate="no">
+ v0.1.0
+ </div>
+ </div>
+ </div>
+ <ul id="sidebar-list-nav" class="sidebar-list-nav" role="tablist" data-extras=""></ul>
+ </div>
+</nav>
+
+<output role="status" id="toast"></output>
+
+<main class="content page-extra" id="main" data-type="extras">
+ <div id="content" class="content-inner">
+ <div class="top-search">
+ <div class="search-settings">
+ <form class="search-bar" action="search.html">
+ <label class="search-label">
+ <span class="sr-only">Search documentation of arrow</span>
+ <input name="q" type="text" class="search-input" placeholder="Press / to search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
+ </label>
+ <button type="submit" class="search-button" aria-label="Submit Search" tabindex="-1">
+ <i class="ri-search-2-line ri-lg" aria-hidden="true"></i>
+ </button>
+ <button type="button" tabindex="-1" class="search-close-button" aria-hidden="true">
+ <i class="ri-close-line ri-lg" title="Cancel search"></i>
+ </button>
+ </form>
+ <div class="autocomplete">
+ </div>
+ <button class="icon-settings display-settings">
+ <i class="ri-settings-3-line"></i>
+ <span class="sr-only">Settings</span>
+ </button>
+ </div>
+ </div>
+
+<div id="top-content">
+ <div class="heading-with-actions top-heading">
+ <h1>API Reference <small class="app-vsn">arrow v#0.1.0</small></h1>
+
+ <a href="https://github.com/apache/arrow-erlang" title="View Source" class="icon-action" rel="help">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ <span class="sr-only">View Source</span>
+ </a>
+
+ </div>
+
+ <section class="details-list">
+ <h2 id="modules" class="section-heading">Modules</h2>
+ <div class="summary">
+<div class="summary-row">
+ <div class="summary-signature">
+ <a href="arrow.html" translate="no">arrow</a>
+
+ </div>
+
+</div>
+<div class="summary-row">
+ <div class="summary-signature">
+ <a href="arrow_array.html" translate="no">arrow_array</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Provides a record, a behaviour, and functions to work with Apache Arrow Arrays.</p></div>
+
+</div>
+<div class="summary-row">
+ <div class="summary-signature">
+ <a href="arrow_bitmap.html" translate="no">arrow_bitmap</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Validity Bitmap implementation for <code class="inline">arrow</code>.</p></div>
+
+</div>
+<div class="summary-row">
+ <div class="summary-signature">
+ <a href="arrow_buffer.html" translate="no">arrow_buffer</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Buffer implementation for <code class="inline">arrow</code>.</p></div>
+
+</div>
+<div class="summary-row">
+ <div class="summary-signature">
+ <a href="arrow_fixed_list_array.html" translate="no">arrow_fixed_list_array</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Provides support for Arrow's Fixed-Size List Layout.</p></div>
+
+</div>
+<div class="summary-row">
+ <div class="summary-signature">
+ <a href="arrow_fixed_primitive_array.html" translate="no">arrow_fixed_primitive_array</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Provides support for Arrow's Fixed-Size Primitive Layout. The <a>Primitive
+Layout</a>
+uses the following metadata in the <code class="inline">arrow_array</code></p></div>
+
+</div>
+<div class="summary-row">
+ <div class="summary-signature">
+ <a href="arrow_format_nif.html" translate="no">arrow_format_nif</a>
+
+ </div>
+
+</div>
+<div class="summary-row">
+ <div class="summary-signature">
+ <a href="arrow_ipc_field.html" translate="no">arrow_ipc_field</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Provides a record and functions to deal with individual fields in
+a Schema</p></div>
+
+</div>
+<div class="summary-row">
+ <div class="summary-signature">
+ <a href="arrow_ipc_file.html" translate="no">arrow_ipc_file</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Provides records and functions to deal with the IPC File. The <a>IPC
+File</a> is an
+extension of the <a>IPC Stream</a> that
+supports random access with the help of a footer which contains the offsets of
+all the messages.</p></div>
+
+</div>
+<div class="summary-row">
+ <div class="summary-signature">
+ <a href="arrow_ipc_message.html" translate="no">arrow_ipc_message</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Provides a record and functions to deal with the Encapsulated Message
+Format.</p></div>
+
+</div>
+<div class="summary-row">
+ <div class="summary-signature">
+ <a href="arrow_ipc_record_batch.html" translate="no">arrow_ipc_record_batch</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Provides a record and functions to deal with RecordBatches.</p></div>
+
+</div>
+<div class="summary-row">
+ <div class="summary-signature">
+ <a href="arrow_ipc_schema.html" translate="no">arrow_ipc_schema</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Provides a record and functions to deal with Schemas.</p></div>
+
+</div>
+<div class="summary-row">
+ <div class="summary-signature">
+ <a href="arrow_ipc_type.html" translate="no">arrow_ipc_type</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Provides types and functions to work with IPC types. </p></div>
+
+</div>
+<div class="summary-row">
+ <div class="summary-signature">
+ <a href="arrow_offsets.html" translate="no">arrow_offsets</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Provides support for Apache Arrow's Offsets</p></div>
+
+</div>
+<div class="summary-row">
+ <div class="summary-signature">
+ <a href="arrow_type.html" translate="no">arrow_type</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Provides representation for as well as functions for working with Arrow
+specific datatypes.</p></div>
+
+</div>
+<div class="summary-row">
+ <div class="summary-signature">
+ <a href="arrow_variable_binary_array.html" translate="no">arrow_variable_binary_array</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Provides support for Arrow's Variable-Sized Binary Layout.</p></div>
+
+</div>
+<div class="summary-row">
+ <div class="summary-signature">
+ <a href="arrow_variable_list_array.html" translate="no">arrow_variable_list_array</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Provides support for Arrow's Variable-Size List Layout.</p></div>
+
+</div>
+
+ </div>
+ </section>
+
+
+</div>
+ <footer class="footer">
+ <p>
+
+ <span class="line">
+ <a href="https://hex.pm/packages/arrow/0.1.0" class="footer-hex-package">Hex Package</a>
+
+ <a href="https://preview.hex.pm/preview/arrow/0.1.0">Hex Preview</a>
+
+ </span>
+
+ <span class="line">
+ <button class="a-main footer-button display-quick-switch" title="Search HexDocs packages">
+ Search HexDocs
+ </button>
+
+ <a href="arrow.epub" title="ePub version">
+ Download ePub version
+ </a>
+
+ </span>
+ </p>
+
+ <p class="built-using">
+ Built using
+ <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.38.2) for the
+
+ <a href="https://erlang.org" title="Erlang" target="_blank" translate="no">Erlang programming language</a>
+
+ </p>
+
+ </footer>
+ </div>
+</main>
+</div>
+
+ </body>
+</html>
diff --git a/main/arrow.epub b/main/arrow.epub
new file mode 100644
index 0000000..35a43ed
Binary files /dev/null and b/main/arrow.epub differ
diff --git a/main/arrow.html b/main/arrow.html
new file mode 100644
index 0000000..8e77822
--- /dev/null
+++ b/main/arrow.html
@@ -0,0 +1,130 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="generator" content="ExDoc v0.38.2">
+ <meta name="project" content="arrow v0.1.0">
+
+
+ <title>arrow — arrow v0.1.0</title>
+
+ <link rel="stylesheet" href="dist/html-erlang-DQDXQC7W.css" />
+
+ <script defer src="dist/sidebar_items-DDBC4286.js"></script>
+ <script defer src="docs_config.js"></script>
+ <script defer src="dist/html-DPJLHKSM.js"></script>
+
+ </head>
+ <body>
+ <script>(()=>{var t="ex_doc:settings",e="dark";var o="dark",s="light";var E="sidebar_state",n="closed";var r="sidebar_width";var a="sidebar-open";var i=new URLSearchParams(window.location.search),S=i.get("theme")||JSON.parse(localStorage.getItem(t)||"{}").theme;(S===o||S!==s&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&document.body.classList.add(e);var d=sessionStorage.getItem(E),A=d!==n&&!window.matchMedia(`screen and (max-width: ${768}px)`).matches;document.body.cl [...]
+</script>
+
+<div class="body-wrapper">
+
+<button id="sidebar-menu" class="sidebar-button sidebar-toggle" aria-label="toggle sidebar" aria-controls="sidebar">
+ <i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i>
+</button>
+
+<nav id="sidebar" class="sidebar">
+
+ <div class="sidebar-header">
+ <div class="sidebar-projectInfo">
+
+ <div>
+ <a href="https://github.com/apache/arrow-erlang" class="sidebar-projectName" translate="no">
+arrow
+ </a>
+ <div class="sidebar-projectVersion" translate="no">
+ v0.1.0
+ </div>
+ </div>
+ </div>
+ <ul id="sidebar-list-nav" class="sidebar-list-nav" role="tablist" data-extras=""></ul>
+ </div>
+</nav>
+
+<output role="status" id="toast"></output>
+
+<main class="content page-module" id="main" data-type="modules">
+ <div id="content" class="content-inner">
+ <div class="top-search">
+ <div class="search-settings">
+ <form class="search-bar" action="search.html">
+ <label class="search-label">
+ <span class="sr-only">Search documentation of arrow</span>
+ <input name="q" type="text" class="search-input" placeholder="Press / to search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
+ </label>
+ <button type="submit" class="search-button" aria-label="Submit Search" tabindex="-1">
+ <i class="ri-search-2-line ri-lg" aria-hidden="true"></i>
+ </button>
+ <button type="button" tabindex="-1" class="search-close-button" aria-hidden="true">
+ <i class="ri-close-line ri-lg" title="Cancel search"></i>
+ </button>
+ </form>
+ <div class="autocomplete">
+ </div>
+ <button class="icon-settings display-settings">
+ <i class="ri-settings-3-line"></i>
+ <span class="sr-only">Settings</span>
+ </button>
+ </div>
+ </div>
+
+<div id="top-content">
+ <div class="heading-with-actions top-heading">
+ <h1>
+ <span translate="no">arrow</span>
+ <small class="app-vsn" translate="no">(arrow v0.1.0)</small>
+
+ </h1>
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow.erl#L18" title="View Source" class="icon-action" rel="help">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ <span class="sr-only">View Source</span>
+ </a>
+
+ </div>
+
+
+</div>
+
+
+ <footer class="footer">
+ <p>
+
+ <span class="line">
+ <a href="https://hex.pm/packages/arrow/0.1.0" class="footer-hex-package">Hex Package</a>
+
+ <a href="https://preview.hex.pm/preview/arrow/0.1.0">Hex Preview</a>
+
+ </span>
+
+ <span class="line">
+ <button class="a-main footer-button display-quick-switch" title="Search HexDocs packages">
+ Search HexDocs
+ </button>
+
+ <a href="arrow.epub" title="ePub version">
+ Download ePub version
+ </a>
+
+ </span>
+ </p>
+
+ <p class="built-using">
+ Built using
+ <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.38.2) for the
+
+ <a href="https://erlang.org" title="Erlang" target="_blank" translate="no">Erlang programming language</a>
+
+ </p>
+
+ </footer>
+ </div>
+</main>
+</div>
+
+ </body>
+</html>
diff --git a/main/arrow_array.html b/main/arrow_array.html
new file mode 100644
index 0000000..ef83e38
--- /dev/null
+++ b/main/arrow_array.html
@@ -0,0 +1,725 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="generator" content="ExDoc v0.38.2">
+ <meta name="project" content="arrow v0.1.0">
+
+
+ <title>arrow_array — arrow v0.1.0</title>
+
+ <link rel="stylesheet" href="dist/html-erlang-DQDXQC7W.css" />
+
+ <script defer src="dist/sidebar_items-DDBC4286.js"></script>
+ <script defer src="docs_config.js"></script>
+ <script defer src="dist/html-DPJLHKSM.js"></script>
+
+ </head>
+ <body>
+ <script>(()=>{var t="ex_doc:settings",e="dark";var o="dark",s="light";var E="sidebar_state",n="closed";var r="sidebar_width";var a="sidebar-open";var i=new URLSearchParams(window.location.search),S=i.get("theme")||JSON.parse(localStorage.getItem(t)||"{}").theme;(S===o||S!==s&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&document.body.classList.add(e);var d=sessionStorage.getItem(E),A=d!==n&&!window.matchMedia(`screen and (max-width: ${768}px)`).matches;document.body.cl [...]
+</script>
+
+<div class="body-wrapper">
+
+<button id="sidebar-menu" class="sidebar-button sidebar-toggle" aria-label="toggle sidebar" aria-controls="sidebar">
+ <i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i>
+</button>
+
+<nav id="sidebar" class="sidebar">
+
+ <div class="sidebar-header">
+ <div class="sidebar-projectInfo">
+
+ <div>
+ <a href="https://github.com/apache/arrow-erlang" class="sidebar-projectName" translate="no">
+arrow
+ </a>
+ <div class="sidebar-projectVersion" translate="no">
+ v0.1.0
+ </div>
+ </div>
+ </div>
+ <ul id="sidebar-list-nav" class="sidebar-list-nav" role="tablist" data-extras=""></ul>
+ </div>
+</nav>
+
+<output role="status" id="toast"></output>
+
+<main class="content page-behaviour" id="main" data-type="modules">
+ <div id="content" class="content-inner">
+ <div class="top-search">
+ <div class="search-settings">
+ <form class="search-bar" action="search.html">
+ <label class="search-label">
+ <span class="sr-only">Search documentation of arrow</span>
+ <input name="q" type="text" class="search-input" placeholder="Press / to search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
+ </label>
+ <button type="submit" class="search-button" aria-label="Submit Search" tabindex="-1">
+ <i class="ri-search-2-line ri-lg" aria-hidden="true"></i>
+ </button>
+ <button type="button" tabindex="-1" class="search-close-button" aria-hidden="true">
+ <i class="ri-close-line ri-lg" title="Cancel search"></i>
+ </button>
+ </form>
+ <div class="autocomplete">
+ </div>
+ <button class="icon-settings display-settings">
+ <i class="ri-settings-3-line"></i>
+ <span class="sr-only">Settings</span>
+ </button>
+ </div>
+ </div>
+
+<div id="top-content">
+ <div class="heading-with-actions top-heading">
+ <h1>
+ <span translate="no">arrow_array</span> <small>behaviour</small>
+ <small class="app-vsn" translate="no">(arrow v0.1.0)</small>
+
+ </h1>
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_array.erl#L18" title="View Source" class="icon-action" rel="help">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ <span class="sr-only">View Source</span>
+ </a>
+
+ </div>
+
+
+ <section id="moduledoc">
+<p>Provides a record, a behaviour, and functions to work with Apache Arrow Arrays.</p><p>This module as mentioned, provides conveniences for working with Apache Arrow
+<a href="https://arrow.apache.org/docs/format/Glossary.html#term-array">Arrays</a> of
+different
+<a href="https://arrow.apache.org/docs/format/Glossary.html#term-physical-layout">Layouts</a>.
+Firstly, it provides a record to represent all the Layout. Secondly, it provides
+a behaviour for different layouts to adhere to common functionality. Lastly, it
+provides functions to work with Arrays in a common manner.</p><h1>The Structure of an Array</h1><p><code class="inline">arrow</code>'s implementation of an Array has the following fields in its record
+definition, each corresponding to a field in the Arrow Columnar Format
+specification:</p><table><thead><tr><th style="text-align: left;">Field</th><th style="text-align: left;">Type</th><th style="text-align: left;">Representing</th></tr></thead><tbody><tr><td style="text-align: left;"><code class="inline">layout</code></td><td style="text-align: left;"><a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:atom/0"><code class="inline">atom/0</code></a></td><td style="text-align: left;">Layout</td></tr><tr><td style="text-align: left;"><code class="inl [...]
+Fixed-Sized Primitive Layout, the offsets field is not required, in which case
+it is assigned as <code class="inline">undefined</code>. Similarly, the <code class="inline">validity_bitmap</code> is not required
+if there are no null values, in which case it is also assigned as <code class="inline">undefined</code>.</p><h1>The Behaviour of an Array</h1><p>As of right now, a layout needs to implement the <a href="#c:from_erlang/2"><code class="inline">from_erlang/2</code></a> callback.
+This is then used in the <a href="#from_erlang/3"><code class="inline">from_erlang/3</code></a> function to create new arrays.</p><h1>Functions for working with Arrays</h1><p>As of right now, only functions to access the various fields, to create
+new arrays, and to serialize arrays to arrow exist.</p>
+ </section>
+
+</div>
+
+ <section id="summary" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#summary">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Summary</span>
+ </h1>
+<div class="summary-types summary">
+ <h2>
+ <a href="#types">Types</a>
+ </h2>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:array/0" data-no-tooltip="" translate="no">array()</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Represents an Array.</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:layout/0" data-no-tooltip="" translate="no">layout()</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Represents the Layout of an Array.</p></div>
+
+ </div>
+
+</div>
+<div class="summary-callbacks summary">
+ <h2>
+ <a href="#callbacks">Callbacks</a>
+ </h2>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#c:from_erlang/2" data-no-tooltip="" translate="no">from_erlang(Value, Opts)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Creates a new array of a certain layout, given its value and options from its
+erlang representation.</p></div>
+
+ </div>
+
+</div>
+<div class="summary-functions summary">
+ <h2>
+ <a href="#functions">Functions</a>
+ </h2>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#data/1" data-no-tooltip="" translate="no">data(Array)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Returns the data of an array.</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#element_len/1" data-no-tooltip="" translate="no">element_len(Array)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Returns the length of an element in an array.</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#from_erlang/3" data-no-tooltip="" translate="no">from_erlang(Layout, Value, Opts)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>A common way to create a new array, given its layout, value, and options.
+from its erlang representation.</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#layout/1" data-no-tooltip="" translate="no">layout(Array)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Returns the layout of an array.</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#len/1" data-no-tooltip="" translate="no">len(Array)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Returns the length of an array.</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#null_count/1" data-no-tooltip="" translate="no">null_count(Array)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Returns the null count of an array.</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#offsets/1" data-no-tooltip="" translate="no">offsets(Array)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Returns the offsets of an array.</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#to_arrow/1" data-no-tooltip="" translate="no">to_arrow(Array)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Serializes an array into the Arrow binary form.</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#type/1" data-no-tooltip="" translate="no">type(Array)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Returns the type of an array.</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#validity_bitmap/1" data-no-tooltip="" translate="no">validity_bitmap(Array)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Returns the validity bitmap of an array.</p></div>
+
+ </div>
+
+</div>
+
+ </section>
+
+
+ <section id="types" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#types">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Types</span>
+ </h1>
+ <div class="types-list">
+<section class="detail" id="t:array/0">
+
+ <div class="detail-header">
+ <a href="#t:array/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">array()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_array.erl#L84" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> array() ::
+ #array{layout :: <a href="arrow_array.html#t:layout/0">arrow_array:layout</a>(),
+ type :: <a href="arrow_type.html#t:arrow_longhand_type/0">arrow_type:arrow_longhand_type</a>() | <a href="arrow_type.html#t:arrow_nested_type/0">arrow_type:arrow_nested_type</a>(),
+ len :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:pos_integer/0">pos_integer</a>(),
+ element_len :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:pos_integer/0">pos_integer</a>() | undefined,
+ null_count :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:non_neg_integer/0">non_neg_integer</a>(),
+ validity_bitmap :: <a href="arrow_buffer.html#t:buffer/0">arrow_buffer:buffer</a>() | undefined,
+ offsets :: <a href="arrow_buffer.html#t:buffer/0">arrow_buffer:buffer</a>() | undefined,
+ data :: <a href="arrow_buffer.html#t:buffer/0">arrow_buffer:buffer</a>() | #array{}}.</pre>
+
+ </div>
+
+<p>Represents an Array.</p>
+ </section>
+</section>
+<section class="detail" id="t:layout/0">
+
+ <div class="detail-header">
+ <a href="#t:layout/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">layout()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_array.erl#L87" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> layout() :: fixed_primitive | variable_binary | fixed_list | variable_list.</pre>
+
+ </div>
+
+<p>Represents the Layout of an Array.</p>
+ </section>
+</section>
+
+ </div>
+ </section>
+
+ <section id="callbacks" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#callbacks">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Callbacks</span>
+ </h1>
+ <div class="callbacks-list">
+<section class="detail" id="c:from_erlang/2">
+
+ <div class="detail-header">
+ <a href="#c:from_erlang/2" class="detail-link" data-no-tooltip="" aria-label="Link to this callback">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">from_erlang(Value, Opts)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_array.erl#L97" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-callback</span> from_erlang(Value :: [<a href="arrow_type.html#t:native_type/0">arrow_type:native_type</a>()], Opts :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:map/0">map</a>()) -> Array :: <a href="#t:array/0">array</a>().</pre>
+
+ </div>
+
+<p>Creates a new array of a certain layout, given its value and options from its
+erlang representation.</p>
+ </section>
+</section>
+
+ </div>
+ </section>
+
+ <section id="functions" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#functions">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Functions</span>
+ </h1>
+ <div class="functions-list">
+<section class="detail" id="data/1">
+
+ <div class="detail-header">
+ <a href="#data/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">data(Array)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_array.erl#L159" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> data(Array :: <a href="#t:array/0">array</a>()) -> Data :: <a href="arrow_buffer.html#t:buffer/0">arrow_buffer:buffer</a>() | <a href="#t:array/0">array</a>() | undefined.</pre>
+
+ </div>
+
+<p>Returns the data of an array.</p>
+ </section>
+</section>
+<section class="detail" id="element_len/1">
+
+ <div class="detail-header">
+ <a href="#element_len/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">element_len(Array)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_array.erl#L139" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> element_len(Array :: <a href="#t:array/0">array</a>()) -> Length :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:pos_integer/0">pos_integer</a>() | undefined.</pre>
+
+ </div>
+
+<p>Returns the length of an element in an array.</p>
+ </section>
+</section>
+<section class="detail" id="from_erlang/3">
+
+ <div class="detail-header">
+ <a href="#from_erlang/3" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">from_erlang(Layout, Value, Opts)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_array.erl#L110" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> from_erlang(Layout :: <a href="#t:layout/0">layout</a>(),
+ Value :: [<a href="arrow_type.html#t:native_type/0">arrow_type:native_type</a>()],
+ Opts :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:map/0">map</a>() | <a href="arrow_type.html#t:arrow_type/0">arrow_type:arrow_type</a>()) ->
+ Array :: <a href="#t:array/0">array</a>().</pre>
+
+ </div>
+
+<p>A common way to create a new array, given its layout, value, and options.
+from its erlang representation.</p>
+ </section>
+</section>
+<section class="detail" id="layout/1">
+
+ <div class="detail-header">
+ <a href="#layout/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">layout(Array)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_array.erl#L124" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> layout(Array :: <a href="#t:array/0">array</a>()) -> Layout :: <a href="#t:layout/0">layout</a>().</pre>
+
+ </div>
+
+<p>Returns the layout of an array.</p>
+ </section>
+</section>
+<section class="detail" id="len/1">
+
+ <div class="detail-header">
+ <a href="#len/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">len(Array)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_array.erl#L134" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> len(Array :: <a href="#t:array/0">array</a>()) -> Length :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:pos_integer/0">pos_integer</a>().</pre>
+
+ </div>
+
+<p>Returns the length of an array.</p>
+ </section>
+</section>
+<section class="detail" id="null_count/1">
+
+ <div class="detail-header">
+ <a href="#null_count/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">null_count(Array)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_array.erl#L144" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> null_count(Array :: <a href="#t:array/0">array</a>()) -> NullCount :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:non_neg_integer/0">non_neg_integer</a>().</pre>
+
+ </div>
+
+<p>Returns the null count of an array.</p>
+ </section>
+</section>
+<section class="detail" id="offsets/1">
+
+ <div class="detail-header">
+ <a href="#offsets/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">offsets(Array)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_array.erl#L154" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> offsets(Array :: <a href="#t:array/0">array</a>()) -> Offsets :: <a href="arrow_buffer.html#t:buffer/0">arrow_buffer:buffer</a>() | undefined.</pre>
+
+ </div>
+
+<p>Returns the offsets of an array.</p>
+ </section>
+</section>
+<section class="detail" id="to_arrow/1">
+
+ <div class="detail-header">
+ <a href="#to_arrow/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">to_arrow(Array)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_array.erl#L187" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> to_arrow(Array :: <a href="#t:array/0">array</a>()) -> Arrow :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:binary/0">binary</a>().</pre>
+
+ </div>
+
+<p>Serializes an array into the Arrow binary form.</p><p>Serializes the buffers of an Array and concatenates them in the following
+order:</p><ol><li><code class="inline">validity</code></li><li><code class="inline">offsets</code></li><li><code class="inline">data</code></li></ol><p>In case an array doesn't have any of the following buffers, it is omitted.
+(e.g. validity in arrays with a null count of 0, offsets in fixed primitive
+arrays). In the case of a nested array, <code class="inline">data</code> will be serialized form of nested
+array.</p><p>Do note that this is just binary form that includes the buffers in an Array,
+and not IPC.</p>
+ </section>
+</section>
+<section class="detail" id="type/1">
+
+ <div class="detail-header">
+ <a href="#type/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">type(Array)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_array.erl#L129" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> type(Array :: <a href="#t:array/0">array</a>()) -> Type :: <a href="arrow_type.html#t:arrow_type/0">arrow_type:arrow_type</a>().</pre>
+
+ </div>
+
+<p>Returns the type of an array.</p>
+ </section>
+</section>
+<section class="detail" id="validity_bitmap/1">
+
+ <div class="detail-header">
+ <a href="#validity_bitmap/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">validity_bitmap(Array)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_array.erl#L149" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> validity_bitmap(Array :: <a href="#t:array/0">array</a>()) -> ValidityBitmap :: <a href="arrow_buffer.html#t:buffer/0">arrow_buffer:buffer</a>() | undefined.</pre>
+
+ </div>
+
+<p>Returns the validity bitmap of an array.</p>
+ </section>
+</section>
+
+ </div>
+ </section>
+
+ <footer class="footer">
+ <p>
+
+ <span class="line">
+ <a href="https://hex.pm/packages/arrow/0.1.0" class="footer-hex-package">Hex Package</a>
+
+ <a href="https://preview.hex.pm/preview/arrow/0.1.0">Hex Preview</a>
+
+ </span>
+
+ <span class="line">
+ <button class="a-main footer-button display-quick-switch" title="Search HexDocs packages">
+ Search HexDocs
+ </button>
+
+ <a href="arrow.epub" title="ePub version">
+ Download ePub version
+ </a>
+
+ </span>
+ </p>
+
+ <p class="built-using">
+ Built using
+ <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.38.2) for the
+
+ <a href="https://erlang.org" title="Erlang" target="_blank" translate="no">Erlang programming language</a>
+
+ </p>
+
+ </footer>
+ </div>
+</main>
+</div>
+
+ </body>
+</html>
diff --git a/main/arrow_bitmap.html b/main/arrow_bitmap.html
new file mode 100644
index 0000000..d0d0d58
--- /dev/null
+++ b/main/arrow_bitmap.html
@@ -0,0 +1,213 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="generator" content="ExDoc v0.38.2">
+ <meta name="project" content="arrow v0.1.0">
+
+
+ <title>arrow_bitmap — arrow v0.1.0</title>
+
+ <link rel="stylesheet" href="dist/html-erlang-DQDXQC7W.css" />
+
+ <script defer src="dist/sidebar_items-DDBC4286.js"></script>
+ <script defer src="docs_config.js"></script>
+ <script defer src="dist/html-DPJLHKSM.js"></script>
+
+ </head>
+ <body>
+ <script>(()=>{var t="ex_doc:settings",e="dark";var o="dark",s="light";var E="sidebar_state",n="closed";var r="sidebar_width";var a="sidebar-open";var i=new URLSearchParams(window.location.search),S=i.get("theme")||JSON.parse(localStorage.getItem(t)||"{}").theme;(S===o||S!==s&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&document.body.classList.add(e);var d=sessionStorage.getItem(E),A=d!==n&&!window.matchMedia(`screen and (max-width: ${768}px)`).matches;document.body.cl [...]
+</script>
+
+<div class="body-wrapper">
+
+<button id="sidebar-menu" class="sidebar-button sidebar-toggle" aria-label="toggle sidebar" aria-controls="sidebar">
+ <i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i>
+</button>
+
+<nav id="sidebar" class="sidebar">
+
+ <div class="sidebar-header">
+ <div class="sidebar-projectInfo">
+
+ <div>
+ <a href="https://github.com/apache/arrow-erlang" class="sidebar-projectName" translate="no">
+arrow
+ </a>
+ <div class="sidebar-projectVersion" translate="no">
+ v0.1.0
+ </div>
+ </div>
+ </div>
+ <ul id="sidebar-list-nav" class="sidebar-list-nav" role="tablist" data-extras=""></ul>
+ </div>
+</nav>
+
+<output role="status" id="toast"></output>
+
+<main class="content page-module" id="main" data-type="modules">
+ <div id="content" class="content-inner">
+ <div class="top-search">
+ <div class="search-settings">
+ <form class="search-bar" action="search.html">
+ <label class="search-label">
+ <span class="sr-only">Search documentation of arrow</span>
+ <input name="q" type="text" class="search-input" placeholder="Press / to search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
+ </label>
+ <button type="submit" class="search-button" aria-label="Submit Search" tabindex="-1">
+ <i class="ri-search-2-line ri-lg" aria-hidden="true"></i>
+ </button>
+ <button type="button" tabindex="-1" class="search-close-button" aria-hidden="true">
+ <i class="ri-close-line ri-lg" title="Cancel search"></i>
+ </button>
+ </form>
+ <div class="autocomplete">
+ </div>
+ <button class="icon-settings display-settings">
+ <i class="ri-settings-3-line"></i>
+ <span class="sr-only">Settings</span>
+ </button>
+ </div>
+ </div>
+
+<div id="top-content">
+ <div class="heading-with-actions top-heading">
+ <h1>
+ <span translate="no">arrow_bitmap</span>
+ <small class="app-vsn" translate="no">(arrow v0.1.0)</small>
+
+ </h1>
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_bitmap.erl#L18" title="View Source" class="icon-action" rel="help">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ <span class="sr-only">View Source</span>
+ </a>
+
+ </div>
+
+
+ <section id="moduledoc">
+<p>Validity Bitmap implementation for <code class="inline">arrow</code>.</p><p>Defines a function <a href="#validity_bitmap/1"><code class="inline">validity_bitmap/1</code></a> to return the <a href="https://arrow.apache.org/docs/format/Columnar.html#validity-bitmaps">Validity
+Bitmap</a>
+along with the <a href="https://arrow.apache.org/docs/format/Columnar.html#null-count">Null
+Count</a>, of an
+Array.</p><p>An important thing to consider about our implementation of the Null Count is
+that we need to support both <code class="inline">undefined</code> and <code class="inline">nil</code> as null values as they are
+the conventions for null values in Erlang, and Elixir respectively.</p><p>There are 5 important characteristics to remember about the validity bitmap:</p><ol><li><p>A null value is represented by a 0 bit, and a non null value by a 1 bit.</p></li><li><p>Every 8 elements's validities are batched into a byte, which are then
+reversed as Arrow uses least-significant bit (LSB) numbering (more in
+attached reference).</p></li><li><p>If a "batch" consists of less than 8 elements, its validity needs to be
+padded by 0 bits so that it can make a byte.</p></li><li><p>Each byte is stored in a slot of a Buffer (see docs for <code class="inline">arrow_buffer</code>). This
+buffer with the validities of each batch of 8 elements make up what is called
+the Validity Bitmap.</p></li><li><p>If the Null Count is 0, we can allocate the Validity Bitmap as a NULL pointer
+(which in Erlang's case is <code class="inline">undefined</code>).</p></li></ol>
+ </section>
+
+</div>
+
+ <section id="summary" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#summary">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Summary</span>
+ </h1>
+<div class="summary-functions summary">
+ <h2>
+ <a href="#functions">Functions</a>
+ </h2>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#validity_bitmap/1" data-no-tooltip="" translate="no">validity_bitmap(Value)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Returns the Validity Bitmap along with the Null Count, of an Array.</p></div>
+
+ </div>
+
+</div>
+
+ </section>
+
+
+ <section id="functions" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#functions">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Functions</span>
+ </h1>
+ <div class="functions-list">
+<section class="detail" id="validity_bitmap/1">
+
+ <div class="detail-header">
+ <a href="#validity_bitmap/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">validity_bitmap(Value)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_bitmap.erl#L64" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> validity_bitmap(Value :: [<a href="arrow_type.html#t:native_type/0">arrow_type:native_type</a>()] | <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:list/0">list</a>()) ->
+ {Bitmap :: <a href="arrow_buffer.html#t:buffer/0">arrow_buffer:buffer</a>(), <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:non_neg_integer/0">non_neg_integer</a>()}.</pre>
+
+ </div>
+
+<p>Returns the Validity Bitmap along with the Null Count, of an Array.</p>
+ </section>
+</section>
+
+ </div>
+ </section>
+
+ <footer class="footer">
+ <p>
+
+ <span class="line">
+ <a href="https://hex.pm/packages/arrow/0.1.0" class="footer-hex-package">Hex Package</a>
+
+ <a href="https://preview.hex.pm/preview/arrow/0.1.0">Hex Preview</a>
+
+ </span>
+
+ <span class="line">
+ <button class="a-main footer-button display-quick-switch" title="Search HexDocs packages">
+ Search HexDocs
+ </button>
+
+ <a href="arrow.epub" title="ePub version">
+ Download ePub version
+ </a>
+
+ </span>
+ </p>
+
+ <p class="built-using">
+ Built using
+ <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.38.2) for the
+
+ <a href="https://erlang.org" title="Erlang" target="_blank" translate="no">Erlang programming language</a>
+
+ </p>
+
+ </footer>
+ </div>
+</main>
+</div>
+
+ </body>
+</html>
diff --git a/main/arrow_buffer.html b/main/arrow_buffer.html
new file mode 100644
index 0000000..2f2ac84
--- /dev/null
+++ b/main/arrow_buffer.html
@@ -0,0 +1,426 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="generator" content="ExDoc v0.38.2">
+ <meta name="project" content="arrow v0.1.0">
+
+
+ <title>arrow_buffer — arrow v0.1.0</title>
+
+ <link rel="stylesheet" href="dist/html-erlang-DQDXQC7W.css" />
+
+ <script defer src="dist/sidebar_items-DDBC4286.js"></script>
+ <script defer src="docs_config.js"></script>
+ <script defer src="dist/html-DPJLHKSM.js"></script>
+
+ </head>
+ <body>
+ <script>(()=>{var t="ex_doc:settings",e="dark";var o="dark",s="light";var E="sidebar_state",n="closed";var r="sidebar_width";var a="sidebar-open";var i=new URLSearchParams(window.location.search),S=i.get("theme")||JSON.parse(localStorage.getItem(t)||"{}").theme;(S===o||S!==s&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&document.body.classList.add(e);var d=sessionStorage.getItem(E),A=d!==n&&!window.matchMedia(`screen and (max-width: ${768}px)`).matches;document.body.cl [...]
+</script>
+
+<div class="body-wrapper">
+
+<button id="sidebar-menu" class="sidebar-button sidebar-toggle" aria-label="toggle sidebar" aria-controls="sidebar">
+ <i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i>
+</button>
+
+<nav id="sidebar" class="sidebar">
+
+ <div class="sidebar-header">
+ <div class="sidebar-projectInfo">
+
+ <div>
+ <a href="https://github.com/apache/arrow-erlang" class="sidebar-projectName" translate="no">
+arrow
+ </a>
+ <div class="sidebar-projectVersion" translate="no">
+ v0.1.0
+ </div>
+ </div>
+ </div>
+ <ul id="sidebar-list-nav" class="sidebar-list-nav" role="tablist" data-extras=""></ul>
+ </div>
+</nav>
+
+<output role="status" id="toast"></output>
+
+<main class="content page-module" id="main" data-type="modules">
+ <div id="content" class="content-inner">
+ <div class="top-search">
+ <div class="search-settings">
+ <form class="search-bar" action="search.html">
+ <label class="search-label">
+ <span class="sr-only">Search documentation of arrow</span>
+ <input name="q" type="text" class="search-input" placeholder="Press / to search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
+ </label>
+ <button type="submit" class="search-button" aria-label="Submit Search" tabindex="-1">
+ <i class="ri-search-2-line ri-lg" aria-hidden="true"></i>
+ </button>
+ <button type="button" tabindex="-1" class="search-close-button" aria-hidden="true">
+ <i class="ri-close-line ri-lg" title="Cancel search"></i>
+ </button>
+ </form>
+ <div class="autocomplete">
+ </div>
+ <button class="icon-settings display-settings">
+ <i class="ri-settings-3-line"></i>
+ <span class="sr-only">Settings</span>
+ </button>
+ </div>
+ </div>
+
+<div id="top-content">
+ <div class="heading-with-actions top-heading">
+ <h1>
+ <span translate="no">arrow_buffer</span>
+ <small class="app-vsn" translate="no">(arrow v0.1.0)</small>
+
+ </h1>
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_buffer.erl#L18" title="View Source" class="icon-action" rel="help">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ <span class="sr-only">View Source</span>
+ </a>
+
+ </div>
+
+
+ <section id="moduledoc">
+<p>Buffer implementation for <code class="inline">arrow</code>.</p><p>This module adds support for buffers, or Contiguous Memory Regions. There are
+multiple things to know about
+<a href="https://arrow.apache.org/docs/format/Glossary.html#term-buffer">buffers</a>:</p><ol><li><p>Each value it stores is called an element or a
+<a href="https://arrow.apache.org/docs/format/Glossary.html#term-slot">slot</a>.</p></li><li><p>Each slot's length (in bytes) is a positive integer. As a result when we say
+that a slot has a length of 1, we mean that each slot has a length of 1 byte.</p></li><li><p>The buffer's length in the metadata refers to the unpadded binary's size in
+bytes.</p></li><li><p>All buffers have a size that is a multiple of 64. If their data's length is
+not a multiple of 64, it must be padded (in this implementation, by zeros).</p></li><li><p>Null values are represented in this implementation by zeros.</p></li><li><p>In this implementation buffers can be initialized from raw bytes as data
+apart datatypes supported by Arrow. This is so that the Validity Bitmap
+Buffer can be initialized.</p></li></ol>
+ </section>
+
+</div>
+
+ <section id="summary" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#summary">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Summary</span>
+ </h1>
+<div class="summary-types summary">
+ <h2>
+ <a href="#types">Types</a>
+ </h2>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:buffer/0" data-no-tooltip="" translate="no">buffer()</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Represents an Arrow Buffer.</p></div>
+
+ </div>
+
+</div>
+<div class="summary-functions summary">
+ <h2>
+ <a href="#functions">Functions</a>
+ </h2>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#from_erlang/2" data-no-tooltip="" translate="no">from_erlang(Value, Type)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Creates a new buffer from a list of Erlang values or binaries, given its type.</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#from_erlang/3" data-no-tooltip="" translate="no">from_erlang(Data, Type, DataLen)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Creates a new buffer from a list of Erlang values or binaries, given its
+type and length</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#size/1" data-no-tooltip="" translate="no">size(Buffer)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Returns the size of the buffer inclusive of padding in bytes.</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#to_arrow/1" data-no-tooltip="" translate="no">to_arrow(Buffer)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Returns an Arrow buffer binary given a buffer.</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#to_erlang/1" data-no-tooltip="" translate="no">to_erlang(Buffer)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Returns a list of Erlang values or binaries from a buffer.</p></div>
+
+ </div>
+
+</div>
+
+ </section>
+
+
+ <section id="types" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#types">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Types</span>
+ </h1>
+ <div class="types-list">
+<section class="detail" id="t:buffer/0">
+
+ <div class="detail-header">
+ <a href="#t:buffer/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">buffer()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_buffer.erl#L54" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> buffer() ::
+ #buffer{type :: <a href="arrow_type.html#t:arrow_longhand_type/0">arrow_type:arrow_longhand_type</a>(),
+ length :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:pos_integer/0">pos_integer</a>(),
+ data :: [<a href="arrow_type.html#t:native_type/0">arrow_type:native_type</a>()] | <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:binary/0">binary</a>()}.</pre>
+
+ </div>
+
+<p>Represents an Arrow Buffer.</p>
+ </section>
+</section>
+
+ </div>
+ </section>
+
+ <section id="functions" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#functions">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Functions</span>
+ </h1>
+ <div class="functions-list">
+<section class="detail" id="from_erlang/2">
+
+ <div class="detail-header">
+ <a href="#from_erlang/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">from_erlang(Value, Type)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_buffer.erl#L64" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> from_erlang(Value :: [<a href="arrow_type.html#t:native_type/0">arrow_type:native_type</a>()] | <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:binary/0">binary</a>(),
+ Type :: <a href="arrow_type.html#t:arrow_longhand_type/0">arrow_type:arrow_longhand_type</a>()) ->
+ Buffer :: <a href="arrow_buffer.html#t:buffer/0">arrow_buffer:buffer</a>().</pre>
+
+ </div>
+
+<p>Creates a new buffer from a list of Erlang values or binaries, given its type.</p>
+ </section>
+</section>
+<section class="detail" id="from_erlang/3">
+
+ <div class="detail-header">
+ <a href="#from_erlang/3" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">from_erlang(Data, Type, DataLen)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_buffer.erl#L84" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> from_erlang(Data :: [<a href="arrow_type.html#t:native_type/0">arrow_type:native_type</a>()] | <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:binary/0">binary</a>(),
+ Type :: <a href="arrow_type.html#t:arrow_longhand_type/0">arrow_type:arrow_longhand_type</a>(),
+ DataLen :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:pos_integer/0">pos_integer</a>() | undefined) ->
+ Buffer :: <a href="arrow_buffer.html#t:buffer/0">arrow_buffer:buffer</a>().</pre>
+
+ </div>
+
+<p>Creates a new buffer from a list of Erlang values or binaries, given its
+type and length</p>
+ </section>
+</section>
+<section class="detail" id="size/1">
+
+ <div class="detail-header">
+ <a href="#size/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">size(Buffer)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_buffer.erl#L121" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> size(Buffer :: <a href="arrow_buffer.html#t:buffer/0">arrow_buffer:buffer</a>()) -> <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:pos_integer/0">pos_integer</a>().</pre>
+
+ </div>
+
+<p>Returns the size of the buffer inclusive of padding in bytes.</p>
+ </section>
+</section>
+<section class="detail" id="to_arrow/1">
+
+ <div class="detail-header">
+ <a href="#to_arrow/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">to_arrow(Buffer)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_buffer.erl#L98" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> to_arrow(Buffer :: <a href="arrow_buffer.html#t:buffer/0">arrow_buffer:buffer</a>()) -> <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:binary/0">binary</a>().</pre>
+
+ </div>
+
+<p>Returns an Arrow buffer binary given a buffer.</p>
+ </section>
+</section>
+<section class="detail" id="to_erlang/1">
+
+ <div class="detail-header">
+ <a href="#to_erlang/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">to_erlang(Buffer)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_buffer.erl#L114" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> to_erlang(Buffer :: <a href="arrow_buffer.html#t:buffer/0">arrow_buffer:buffer</a>()) -> [<a href="arrow_type.html#t:native_type/0">arrow_type:native_type</a>()].</pre>
+
+ </div>
+
+<p>Returns a list of Erlang values or binaries from a buffer.</p>
+ </section>
+</section>
+
+ </div>
+ </section>
+
+ <footer class="footer">
+ <p>
+
+ <span class="line">
+ <a href="https://hex.pm/packages/arrow/0.1.0" class="footer-hex-package">Hex Package</a>
+
+ <a href="https://preview.hex.pm/preview/arrow/0.1.0">Hex Preview</a>
+
+ </span>
+
+ <span class="line">
+ <button class="a-main footer-button display-quick-switch" title="Search HexDocs packages">
+ Search HexDocs
+ </button>
+
+ <a href="arrow.epub" title="ePub version">
+ Download ePub version
+ </a>
+
+ </span>
+ </p>
+
+ <p class="built-using">
+ Built using
+ <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.38.2) for the
+
+ <a href="https://erlang.org" title="Erlang" target="_blank" translate="no">Erlang programming language</a>
+
+ </p>
+
+ </footer>
+ </div>
+</main>
+</div>
+
+ </body>
+</html>
diff --git a/main/arrow_fixed_list_array.html b/main/arrow_fixed_list_array.html
new file mode 100644
index 0000000..cc0fec1
--- /dev/null
+++ b/main/arrow_fixed_list_array.html
@@ -0,0 +1,213 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="generator" content="ExDoc v0.38.2">
+ <meta name="project" content="arrow v0.1.0">
+
+
+ <title>arrow_fixed_list_array — arrow v0.1.0</title>
+
+ <link rel="stylesheet" href="dist/html-erlang-DQDXQC7W.css" />
+
+ <script defer src="dist/sidebar_items-DDBC4286.js"></script>
+ <script defer src="docs_config.js"></script>
+ <script defer src="dist/html-DPJLHKSM.js"></script>
+
+ </head>
+ <body>
+ <script>(()=>{var t="ex_doc:settings",e="dark";var o="dark",s="light";var E="sidebar_state",n="closed";var r="sidebar_width";var a="sidebar-open";var i=new URLSearchParams(window.location.search),S=i.get("theme")||JSON.parse(localStorage.getItem(t)||"{}").theme;(S===o||S!==s&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&document.body.classList.add(e);var d=sessionStorage.getItem(E),A=d!==n&&!window.matchMedia(`screen and (max-width: ${768}px)`).matches;document.body.cl [...]
+</script>
+
+<div class="body-wrapper">
+
+<button id="sidebar-menu" class="sidebar-button sidebar-toggle" aria-label="toggle sidebar" aria-controls="sidebar">
+ <i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i>
+</button>
+
+<nav id="sidebar" class="sidebar">
+
+ <div class="sidebar-header">
+ <div class="sidebar-projectInfo">
+
+ <div>
+ <a href="https://github.com/apache/arrow-erlang" class="sidebar-projectName" translate="no">
+arrow
+ </a>
+ <div class="sidebar-projectVersion" translate="no">
+ v0.1.0
+ </div>
+ </div>
+ </div>
+ <ul id="sidebar-list-nav" class="sidebar-list-nav" role="tablist" data-extras=""></ul>
+ </div>
+</nav>
+
+<output role="status" id="toast"></output>
+
+<main class="content page-module" id="main" data-type="modules">
+ <div id="content" class="content-inner">
+ <div class="top-search">
+ <div class="search-settings">
+ <form class="search-bar" action="search.html">
+ <label class="search-label">
+ <span class="sr-only">Search documentation of arrow</span>
+ <input name="q" type="text" class="search-input" placeholder="Press / to search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
+ </label>
+ <button type="submit" class="search-button" aria-label="Submit Search" tabindex="-1">
+ <i class="ri-search-2-line ri-lg" aria-hidden="true"></i>
+ </button>
+ <button type="button" tabindex="-1" class="search-close-button" aria-hidden="true">
+ <i class="ri-close-line ri-lg" title="Cancel search"></i>
+ </button>
+ </form>
+ <div class="autocomplete">
+ </div>
+ <button class="icon-settings display-settings">
+ <i class="ri-settings-3-line"></i>
+ <span class="sr-only">Settings</span>
+ </button>
+ </div>
+ </div>
+
+<div id="top-content">
+ <div class="heading-with-actions top-heading">
+ <h1>
+ <span translate="no">arrow_fixed_list_array</span>
+ <small class="app-vsn" translate="no">(arrow v0.1.0)</small>
+
+ </h1>
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_fixed_list_array.erl#L18" title="View Source" class="icon-action" rel="help">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ <span class="sr-only">View Source</span>
+ </a>
+
+ </div>
+
+
+ <section id="moduledoc">
+<p>Provides support for Arrow's Fixed-Size List Layout.</p><p>This module provides support for the <a href="https://arrow.apache.org/docs/format/Columnar.html#fixed-size-list-layout">Fixed-Size List
+Layout</a>,
+which is a layout that supports storing a list of lists of a specific length and
+nesting.</p><h2 id="module-invalid-input" class="section-heading"><a href="#module-invalid-input" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i></a><span class="text">Invalid Input</span></h2><p>It is important that care is taken when passing input values to this module. For
+performance reasons, the input is not validated. The function crashes on nesting
+that is inconsistent: either with the type, or between elements. The lists are
+checked to have the same length as each other at the top level, but not for
+deeper levels. The behaviour of the module on invalid input <strong>CANNOT BE
+GUARANTEED</strong>. Therefore, one must be careful to not to <strong>CRASH THE PROCESS</strong> or
+worse still, <strong>PRODUCE INVALID OUTPUT</strong>.</p><p>Any input must follow the following rules:</p><ol><li> The length of each element must be consistent with the type</li><li> The nesting of each element must be consistent with the type</li><li> The length of each element must be consistent with each other</li><li> The nesting of each element must be consistent with each other</li><li> The nested type is a <code class="inline">fixed_list</code> (as only then can fixed size be
+guaranteed)</li></ol>
+ </section>
+
+</div>
+
+ <section id="summary" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#summary">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Summary</span>
+ </h1>
+<div class="summary-functions summary">
+ <h2>
+ <a href="#functions">Functions</a>
+ </h2>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#from_erlang/2" data-no-tooltip="" translate="no">from_erlang(Values, Type)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Creates a Fixed-Size List Array given the values and type.
+Accepts a map with the type, or the type directly.</p></div>
+
+ </div>
+
+</div>
+
+ </section>
+
+
+ <section id="functions" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#functions">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Functions</span>
+ </h1>
+ <div class="functions-list">
+<section class="detail" id="from_erlang/2">
+
+ <div class="detail-header">
+ <a href="#from_erlang/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">from_erlang(Values, Type)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_fixed_list_array.erl#L58" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> from_erlang(Values :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:list/0">list</a>(), Type :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:map/0">map</a>() | <a href="arrow_type.html#t:arrow_type/0">arrow_type:arrow_type</a>()) ->
+ Array :: <a href="arrow_array.html#t:array/0">arrow_array:array</a>().</pre>
+
+ </div>
+
+<p>Creates a Fixed-Size List Array given the values and type.
+Accepts a map with the type, or the type directly.</p>
+ </section>
+</section>
+
+ </div>
+ </section>
+
+ <footer class="footer">
+ <p>
+
+ <span class="line">
+ <a href="https://hex.pm/packages/arrow/0.1.0" class="footer-hex-package">Hex Package</a>
+
+ <a href="https://preview.hex.pm/preview/arrow/0.1.0">Hex Preview</a>
+
+ </span>
+
+ <span class="line">
+ <button class="a-main footer-button display-quick-switch" title="Search HexDocs packages">
+ Search HexDocs
+ </button>
+
+ <a href="arrow.epub" title="ePub version">
+ Download ePub version
+ </a>
+
+ </span>
+ </p>
+
+ <p class="built-using">
+ Built using
+ <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.38.2) for the
+
+ <a href="https://erlang.org" title="Erlang" target="_blank" translate="no">Erlang programming language</a>
+
+ </p>
+
+ </footer>
+ </div>
+</main>
+</div>
+
+ </body>
+</html>
diff --git a/main/arrow_fixed_primitive_array.html b/main/arrow_fixed_primitive_array.html
new file mode 100644
index 0000000..6baf343
--- /dev/null
+++ b/main/arrow_fixed_primitive_array.html
@@ -0,0 +1,215 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="generator" content="ExDoc v0.38.2">
+ <meta name="project" content="arrow v0.1.0">
+
+
+ <title>arrow_fixed_primitive_array — arrow v0.1.0</title>
+
+ <link rel="stylesheet" href="dist/html-erlang-DQDXQC7W.css" />
+
+ <script defer src="dist/sidebar_items-DDBC4286.js"></script>
+ <script defer src="docs_config.js"></script>
+ <script defer src="dist/html-DPJLHKSM.js"></script>
+
+ </head>
+ <body>
+ <script>(()=>{var t="ex_doc:settings",e="dark";var o="dark",s="light";var E="sidebar_state",n="closed";var r="sidebar_width";var a="sidebar-open";var i=new URLSearchParams(window.location.search),S=i.get("theme")||JSON.parse(localStorage.getItem(t)||"{}").theme;(S===o||S!==s&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&document.body.classList.add(e);var d=sessionStorage.getItem(E),A=d!==n&&!window.matchMedia(`screen and (max-width: ${768}px)`).matches;document.body.cl [...]
+</script>
+
+<div class="body-wrapper">
+
+<button id="sidebar-menu" class="sidebar-button sidebar-toggle" aria-label="toggle sidebar" aria-controls="sidebar">
+ <i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i>
+</button>
+
+<nav id="sidebar" class="sidebar">
+
+ <div class="sidebar-header">
+ <div class="sidebar-projectInfo">
+
+ <div>
+ <a href="https://github.com/apache/arrow-erlang" class="sidebar-projectName" translate="no">
+arrow
+ </a>
+ <div class="sidebar-projectVersion" translate="no">
+ v0.1.0
+ </div>
+ </div>
+ </div>
+ <ul id="sidebar-list-nav" class="sidebar-list-nav" role="tablist" data-extras=""></ul>
+ </div>
+</nav>
+
+<output role="status" id="toast"></output>
+
+<main class="content page-module" id="main" data-type="modules">
+ <div id="content" class="content-inner">
+ <div class="top-search">
+ <div class="search-settings">
+ <form class="search-bar" action="search.html">
+ <label class="search-label">
+ <span class="sr-only">Search documentation of arrow</span>
+ <input name="q" type="text" class="search-input" placeholder="Press / to search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
+ </label>
+ <button type="submit" class="search-button" aria-label="Submit Search" tabindex="-1">
+ <i class="ri-search-2-line ri-lg" aria-hidden="true"></i>
+ </button>
+ <button type="button" tabindex="-1" class="search-close-button" aria-hidden="true">
+ <i class="ri-close-line ri-lg" title="Cancel search"></i>
+ </button>
+ </form>
+ <div class="autocomplete">
+ </div>
+ <button class="icon-settings display-settings">
+ <i class="ri-settings-3-line"></i>
+ <span class="sr-only">Settings</span>
+ </button>
+ </div>
+ </div>
+
+<div id="top-content">
+ <div class="heading-with-actions top-heading">
+ <h1>
+ <span translate="no">arrow_fixed_primitive_array</span>
+ <small class="app-vsn" translate="no">(arrow v0.1.0)</small>
+
+ </h1>
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_fixed_primitive_array.erl#L18" title="View Source" class="icon-action" rel="help">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ <span class="sr-only">View Source</span>
+ </a>
+
+ </div>
+
+
+ <section id="moduledoc">
+<p>Provides support for Arrow's Fixed-Size Primitive Layout. The <a href="https://arrow.apache.org/docs/format/Columnar.html#fixed-size-primitive-layout">Primitive
+Layout</a>
+uses the following metadata in the <code class="inline">arrow_array</code>:</p><ol><li> <code class="inline">layout</code>, of type <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:atom/0"><code class="inline">atom/0</code></a>, and a constant value of
+<code class="inline">fixed_primitive</code>.</li><li> <code class="inline">type</code>, of type <a href="arrow_type.html#t:arrow_primitive_type/0"><code class="inline">arrow_type:arrow_primitive_type/0</code></a>, which
+represents the Logical Type of the Array.</li><li> <code class="inline">len</code>, of type <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:pos_integer/0"><code class="inline">pos_integer/0</code></a>, which represents the Array's
+Length.</li><li> <code class="inline">null_count</code>, of type <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:non_neg_integer/0"><code class="inline">non_neg_integer/0</code></a>, which represents
+the Array's Null Count, or the number of undefined values in the
+Array.</li><li> <code class="inline">validity_bitmap</code>, which is a buffer (<code class="inline">arrow_buffer</code>) or the
+atom <code class="inline">undefined</code>, which represents the Array's <a href="https://arrow.apache.org/docs/format/Columnar.html#validity-bitmaps">Validity
+Bitmap</a>.</li><li> <code class="inline">data</code>, which is a buffer (<code class="inline">arrow_buffer</code>), which represents the
+Array's Value Buffer.</li></ol><p>The <code class="inline">offsets</code> field will be allocated as <code class="inline">undefined</code>. Same goes for the
+<code class="inline">validity_bitmap</code> field in the case of a 0 <code class="inline">null_count</code>.</p>
+ </section>
+
+</div>
+
+ <section id="summary" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#summary">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Summary</span>
+ </h1>
+<div class="summary-functions summary">
+ <h2>
+ <a href="#functions">Functions</a>
+ </h2>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#from_erlang/2" data-no-tooltip="" translate="no">from_erlang(Value, Type)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Creates a new primitive array, given its value and type from its erlang
+representation.</p></div>
+
+ </div>
+
+</div>
+
+ </section>
+
+
+ <section id="functions" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#functions">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Functions</span>
+ </h1>
+ <div class="functions-list">
+<section class="detail" id="from_erlang/2">
+
+ <div class="detail-header">
+ <a href="#from_erlang/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">from_erlang(Value, Type)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_fixed_primitive_array.erl#L63" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> from_erlang(Value :: [<a href="arrow_type.html#t:native_type/0">arrow_type:native_type</a>()],
+ Type :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:map/0">map</a>() | <a href="arrow_type.html#t:arrow_primitive_type/0">arrow_type:arrow_primitive_type</a>()) ->
+ Array :: <a href="arrow_array.html#t:array/0">arrow_array:array</a>().</pre>
+
+ </div>
+
+<p>Creates a new primitive array, given its value and type from its erlang
+representation.</p><p>Accepts a map with the type, or the type directly.</p>
+ </section>
+</section>
+
+ </div>
+ </section>
+
+ <footer class="footer">
+ <p>
+
+ <span class="line">
+ <a href="https://hex.pm/packages/arrow/0.1.0" class="footer-hex-package">Hex Package</a>
+
+ <a href="https://preview.hex.pm/preview/arrow/0.1.0">Hex Preview</a>
+
+ </span>
+
+ <span class="line">
+ <button class="a-main footer-button display-quick-switch" title="Search HexDocs packages">
+ Search HexDocs
+ </button>
+
+ <a href="arrow.epub" title="ePub version">
+ Download ePub version
+ </a>
+
+ </span>
+ </p>
+
+ <p class="built-using">
+ Built using
+ <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.38.2) for the
+
+ <a href="https://erlang.org" title="Erlang" target="_blank" translate="no">Erlang programming language</a>
+
+ </p>
+
+ </footer>
+ </div>
+</main>
+</div>
+
+ </body>
+</html>
diff --git a/main/arrow_format_nif.html b/main/arrow_format_nif.html
new file mode 100644
index 0000000..b1f8b74
--- /dev/null
+++ b/main/arrow_format_nif.html
@@ -0,0 +1,278 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="generator" content="ExDoc v0.38.2">
+ <meta name="project" content="arrow v0.1.0">
+
+
+ <title>arrow_format_nif — arrow v0.1.0</title>
+
+ <link rel="stylesheet" href="dist/html-erlang-DQDXQC7W.css" />
+
+ <script defer src="dist/sidebar_items-DDBC4286.js"></script>
+ <script defer src="docs_config.js"></script>
+ <script defer src="dist/html-DPJLHKSM.js"></script>
+
+ </head>
+ <body>
+ <script>(()=>{var t="ex_doc:settings",e="dark";var o="dark",s="light";var E="sidebar_state",n="closed";var r="sidebar_width";var a="sidebar-open";var i=new URLSearchParams(window.location.search),S=i.get("theme")||JSON.parse(localStorage.getItem(t)||"{}").theme;(S===o||S!==s&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&document.body.classList.add(e);var d=sessionStorage.getItem(E),A=d!==n&&!window.matchMedia(`screen and (max-width: ${768}px)`).matches;document.body.cl [...]
+</script>
+
+<div class="body-wrapper">
+
+<button id="sidebar-menu" class="sidebar-button sidebar-toggle" aria-label="toggle sidebar" aria-controls="sidebar">
+ <i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i>
+</button>
+
+<nav id="sidebar" class="sidebar">
+
+ <div class="sidebar-header">
+ <div class="sidebar-projectInfo">
+
+ <div>
+ <a href="https://github.com/apache/arrow-erlang" class="sidebar-projectName" translate="no">
+arrow
+ </a>
+ <div class="sidebar-projectVersion" translate="no">
+ v0.1.0
+ </div>
+ </div>
+ </div>
+ <ul id="sidebar-list-nav" class="sidebar-list-nav" role="tablist" data-extras=""></ul>
+ </div>
+</nav>
+
+<output role="status" id="toast"></output>
+
+<main class="content page-module" id="main" data-type="modules">
+ <div id="content" class="content-inner">
+ <div class="top-search">
+ <div class="search-settings">
+ <form class="search-bar" action="search.html">
+ <label class="search-label">
+ <span class="sr-only">Search documentation of arrow</span>
+ <input name="q" type="text" class="search-input" placeholder="Press / to search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
+ </label>
+ <button type="submit" class="search-button" aria-label="Submit Search" tabindex="-1">
+ <i class="ri-search-2-line ri-lg" aria-hidden="true"></i>
+ </button>
+ <button type="button" tabindex="-1" class="search-close-button" aria-hidden="true">
+ <i class="ri-close-line ri-lg" title="Cancel search"></i>
+ </button>
+ </form>
+ <div class="autocomplete">
+ </div>
+ <button class="icon-settings display-settings">
+ <i class="ri-settings-3-line"></i>
+ <span class="sr-only">Settings</span>
+ </button>
+ </div>
+ </div>
+
+<div id="top-content">
+ <div class="heading-with-actions top-heading">
+ <h1>
+ <span translate="no">arrow_format_nif</span>
+ <small class="app-vsn" translate="no">(arrow v0.1.0)</small>
+
+ </h1>
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_format_nif.erl#L18" title="View Source" class="icon-action" rel="help">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ <span class="sr-only">View Source</span>
+ </a>
+
+ </div>
+
+
+</div>
+
+ <section id="summary" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#summary">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Summary</span>
+ </h1>
+<div class="summary-functions summary">
+ <h2>
+ <a href="#functions">Functions</a>
+ </h2>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#serialize_footer/1" data-no-tooltip="" translate="no">serialize_footer(_)</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#serialize_message/1" data-no-tooltip="" translate="no">serialize_message(_)</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#test_decode/1" data-no-tooltip="" translate="no">test_decode(_)</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#test_encode/1" data-no-tooltip="" translate="no">test_encode(_)</a>
+
+ </div>
+
+ </div>
+
+</div>
+
+ </section>
+
+
+ <section id="functions" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#functions">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Functions</span>
+ </h1>
+ <div class="functions-list">
+<section class="detail" id="serialize_footer/1">
+
+ <div class="detail-header">
+ <a href="#serialize_footer/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">serialize_footer(_)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_format_nif.erl#L38" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+
+ </section>
+</section>
+<section class="detail" id="serialize_message/1">
+
+ <div class="detail-header">
+ <a href="#serialize_message/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">serialize_message(_)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_format_nif.erl#L35" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+
+ </section>
+</section>
+<section class="detail" id="test_decode/1">
+
+ <div class="detail-header">
+ <a href="#test_decode/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">test_decode(_)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_format_nif.erl#L29" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+
+ </section>
+</section>
+<section class="detail" id="test_encode/1">
+
+ <div class="detail-header">
+ <a href="#test_encode/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">test_encode(_)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_format_nif.erl#L32" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+
+ </section>
+</section>
+
+ </div>
+ </section>
+
+ <footer class="footer">
+ <p>
+
+ <span class="line">
+ <a href="https://hex.pm/packages/arrow/0.1.0" class="footer-hex-package">Hex Package</a>
+
+ <a href="https://preview.hex.pm/preview/arrow/0.1.0">Hex Preview</a>
+
+ </span>
+
+ <span class="line">
+ <button class="a-main footer-button display-quick-switch" title="Search HexDocs packages">
+ Search HexDocs
+ </button>
+
+ <a href="arrow.epub" title="ePub version">
+ Download ePub version
+ </a>
+
+ </span>
+ </p>
+
+ <p class="built-using">
+ Built using
+ <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.38.2) for the
+
+ <a href="https://erlang.org" title="Erlang" target="_blank" translate="no">Erlang programming language</a>
+
+ </p>
+
+ </footer>
+ </div>
+</main>
+</div>
+
+ </body>
+</html>
diff --git a/main/arrow_ipc_field.html b/main/arrow_ipc_field.html
new file mode 100644
index 0000000..355d7e3
--- /dev/null
+++ b/main/arrow_ipc_field.html
@@ -0,0 +1,354 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="generator" content="ExDoc v0.38.2">
+ <meta name="project" content="arrow v0.1.0">
+
+
+ <title>arrow_ipc_field — arrow v0.1.0</title>
+
+ <link rel="stylesheet" href="dist/html-erlang-DQDXQC7W.css" />
+
+ <script defer src="dist/sidebar_items-DDBC4286.js"></script>
+ <script defer src="docs_config.js"></script>
+ <script defer src="dist/html-DPJLHKSM.js"></script>
+
+ </head>
+ <body>
+ <script>(()=>{var t="ex_doc:settings",e="dark";var o="dark",s="light";var E="sidebar_state",n="closed";var r="sidebar_width";var a="sidebar-open";var i=new URLSearchParams(window.location.search),S=i.get("theme")||JSON.parse(localStorage.getItem(t)||"{}").theme;(S===o||S!==s&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&document.body.classList.add(e);var d=sessionStorage.getItem(E),A=d!==n&&!window.matchMedia(`screen and (max-width: ${768}px)`).matches;document.body.cl [...]
+</script>
+
+<div class="body-wrapper">
+
+<button id="sidebar-menu" class="sidebar-button sidebar-toggle" aria-label="toggle sidebar" aria-controls="sidebar">
+ <i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i>
+</button>
+
+<nav id="sidebar" class="sidebar">
+
+ <div class="sidebar-header">
+ <div class="sidebar-projectInfo">
+
+ <div>
+ <a href="https://github.com/apache/arrow-erlang" class="sidebar-projectName" translate="no">
+arrow
+ </a>
+ <div class="sidebar-projectVersion" translate="no">
+ v0.1.0
+ </div>
+ </div>
+ </div>
+ <ul id="sidebar-list-nav" class="sidebar-list-nav" role="tablist" data-extras=""></ul>
+ </div>
+</nav>
+
+<output role="status" id="toast"></output>
+
+<main class="content page-module" id="main" data-type="modules">
+ <div id="content" class="content-inner">
+ <div class="top-search">
+ <div class="search-settings">
+ <form class="search-bar" action="search.html">
+ <label class="search-label">
+ <span class="sr-only">Search documentation of arrow</span>
+ <input name="q" type="text" class="search-input" placeholder="Press / to search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
+ </label>
+ <button type="submit" class="search-button" aria-label="Submit Search" tabindex="-1">
+ <i class="ri-search-2-line ri-lg" aria-hidden="true"></i>
+ </button>
+ <button type="button" tabindex="-1" class="search-close-button" aria-hidden="true">
+ <i class="ri-close-line ri-lg" title="Cancel search"></i>
+ </button>
+ </form>
+ <div class="autocomplete">
+ </div>
+ <button class="icon-settings display-settings">
+ <i class="ri-settings-3-line"></i>
+ <span class="sr-only">Settings</span>
+ </button>
+ </div>
+ </div>
+
+<div id="top-content">
+ <div class="heading-with-actions top-heading">
+ <h1>
+ <span translate="no">arrow_ipc_field</span>
+ <small class="app-vsn" translate="no">(arrow v0.1.0)</small>
+
+ </h1>
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_field.erl#L18" title="View Source" class="icon-action" rel="help">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ <span class="sr-only">View Source</span>
+ </a>
+
+ </div>
+
+
+ <section id="moduledoc">
+<p>Provides a record and functions to deal with individual fields in
+a Schema</p><p>A
+<a href="https://github.com/apache/arrow/blob/3456131ab7350bee5d9569ffd63d3f0ee713991c/format/Schema.fbs#L469-L492">Field</a>
+represents a single column in a table (which is represented by a
+<a href="https://github.com/apache/arrow/blob/3456131ab7350bee5d9569ffd63d3f0ee713991c/format/Schema.fbs#L514-L530">Schema</a>.
+This module provides a record and a function to manage all the metadata required
+to represent a column. Metadata such as:</p><ol><li> <code class="inline">name</code>: The Name of the column. This can either be a string or
+ null.</li><li> <code class="inline">nullable</code>: A boolean representing whether a column can have null
+values. Generally true.</li><li> <code class="inline">type</code>: The Type of the column, and is of type
+<a href="arrow_ipc_type.html#t:ipc_type/0"><code class="inline">arrow_ipc_type:ipc_type/0</code></a></li><li> <code class="inline">dictionary</code>: A boolean representing if the column is dictionary
+encoded</li><li> <code class="inline">children</code>: The child fields of a nested datatype</li><li> <code class="inline">custom_metadata</code>: A list of custom metadata in key-value format</li></ol><p>Currently, dictionary encoding and custom metadata are not supported, but
+they have been added for forwards comapatibility.</p>
+ </section>
+
+</div>
+
+ <section id="summary" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#summary">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Summary</span>
+ </h1>
+<div class="summary-types summary">
+ <h2>
+ <a href="#types">Types</a>
+ </h2>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:field/0" data-no-tooltip="" translate="no">field()</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Represents an IPC Field.</p></div>
+
+ </div>
+
+</div>
+<div class="summary-functions summary">
+ <h2>
+ <a href="#functions">Functions</a>
+ </h2>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#from_erlang/1" data-no-tooltip="" translate="no">from_erlang(Type)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Creates a field given the type of the column. Assigns the name as
+<code class="inline">undefined</code>.</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#from_erlang/2" data-no-tooltip="" translate="no">from_erlang(Type, Name)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Creates a field given the type and name of the column.</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#from_erlang/3" data-no-tooltip="" translate="no">from_erlang(Type, Name, Children)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Creates a field given the type, name and children of the column.</p></div>
+
+ </div>
+
+</div>
+
+ </section>
+
+
+ <section id="types" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#types">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Types</span>
+ </h1>
+ <div class="types-list">
+<section class="detail" id="t:field/0">
+
+ <div class="detail-header">
+ <a href="#t:field/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">field()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_field.erl#L52" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> field() ::
+ #field{name :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:string/0">string</a>() | undefined,
+ nullable :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:boolean/0">boolean</a>(),
+ type :: <a href="arrow_ipc_type.html#t:ipc_type/0">arrow_ipc_type:ipc_type</a>(),
+ dictionary :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:term/0">term</a>(),
+ children :: [#field{}],
+ custom_metadata :: [<a href="arrow_ipc_message.html#t:key_value/0">arrow_ipc_message:key_value</a>()]}.</pre>
+
+ </div>
+
+<p>Represents an IPC Field.</p>
+ </section>
+</section>
+
+ </div>
+ </section>
+
+ <section id="functions" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#functions">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Functions</span>
+ </h1>
+ <div class="functions-list">
+<section class="detail" id="from_erlang/1">
+
+ <div class="detail-header">
+ <a href="#from_erlang/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">from_erlang(Type)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_field.erl#L59" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> from_erlang(Type :: <a href="arrow_ipc_type.html#t:ipc_type/0">arrow_ipc_type:ipc_type</a>()) -> Field :: <a href="#t:field/0">field</a>().</pre>
+
+ </div>
+
+<p>Creates a field given the type of the column. Assigns the name as
+<code class="inline">undefined</code>.</p>
+ </section>
+</section>
+<section class="detail" id="from_erlang/2">
+
+ <div class="detail-header">
+ <a href="#from_erlang/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">from_erlang(Type, Name)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_field.erl#L67" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> from_erlang(Type :: <a href="arrow_ipc_type.html#t:ipc_type/0">arrow_ipc_type:ipc_type</a>(), Name :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:string/0">string</a>() | undefined) -> Field :: <a href="#t:field/0">field</a>().</pre>
+
+ </div>
+
+<p>Creates a field given the type and name of the column.</p>
+ </section>
+</section>
+<section class="detail" id="from_erlang/3">
+
+ <div class="detail-header">
+ <a href="#from_erlang/3" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">from_erlang(Type, Name, Children)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_field.erl#L77" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> from_erlang(Type :: <a href="arrow_ipc_type.html#t:ipc_type/0">arrow_ipc_type:ipc_type</a>(),
+ Name :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:string/0">string</a>() | undefined,
+ Children :: [<a href="#t:field/0">field</a>()]) ->
+ Field :: <a href="#t:field/0">field</a>().</pre>
+
+ </div>
+
+<p>Creates a field given the type, name and children of the column.</p>
+ </section>
+</section>
+
+ </div>
+ </section>
+
+ <footer class="footer">
+ <p>
+
+ <span class="line">
+ <a href="https://hex.pm/packages/arrow/0.1.0" class="footer-hex-package">Hex Package</a>
+
+ <a href="https://preview.hex.pm/preview/arrow/0.1.0">Hex Preview</a>
+
+ </span>
+
+ <span class="line">
+ <button class="a-main footer-button display-quick-switch" title="Search HexDocs packages">
+ Search HexDocs
+ </button>
+
+ <a href="arrow.epub" title="ePub version">
+ Download ePub version
+ </a>
+
+ </span>
+ </p>
+
+ <p class="built-using">
+ Built using
+ <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.38.2) for the
+
+ <a href="https://erlang.org" title="Erlang" target="_blank" translate="no">Erlang programming language</a>
+
+ </p>
+
+ </footer>
+ </div>
+</main>
+</div>
+
+ </body>
+</html>
diff --git a/main/arrow_ipc_file.html b/main/arrow_ipc_file.html
new file mode 100644
index 0000000..7ba09b4
--- /dev/null
+++ b/main/arrow_ipc_file.html
@@ -0,0 +1,315 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="generator" content="ExDoc v0.38.2">
+ <meta name="project" content="arrow v0.1.0">
+
+
+ <title>arrow_ipc_file — arrow v0.1.0</title>
+
+ <link rel="stylesheet" href="dist/html-erlang-DQDXQC7W.css" />
+
+ <script defer src="dist/sidebar_items-DDBC4286.js"></script>
+ <script defer src="docs_config.js"></script>
+ <script defer src="dist/html-DPJLHKSM.js"></script>
+
+ </head>
+ <body>
+ <script>(()=>{var t="ex_doc:settings",e="dark";var o="dark",s="light";var E="sidebar_state",n="closed";var r="sidebar_width";var a="sidebar-open";var i=new URLSearchParams(window.location.search),S=i.get("theme")||JSON.parse(localStorage.getItem(t)||"{}").theme;(S===o||S!==s&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&document.body.classList.add(e);var d=sessionStorage.getItem(E),A=d!==n&&!window.matchMedia(`screen and (max-width: ${768}px)`).matches;document.body.cl [...]
+</script>
+
+<div class="body-wrapper">
+
+<button id="sidebar-menu" class="sidebar-button sidebar-toggle" aria-label="toggle sidebar" aria-controls="sidebar">
+ <i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i>
+</button>
+
+<nav id="sidebar" class="sidebar">
+
+ <div class="sidebar-header">
+ <div class="sidebar-projectInfo">
+
+ <div>
+ <a href="https://github.com/apache/arrow-erlang" class="sidebar-projectName" translate="no">
+arrow
+ </a>
+ <div class="sidebar-projectVersion" translate="no">
+ v0.1.0
+ </div>
+ </div>
+ </div>
+ <ul id="sidebar-list-nav" class="sidebar-list-nav" role="tablist" data-extras=""></ul>
+ </div>
+</nav>
+
+<output role="status" id="toast"></output>
+
+<main class="content page-module" id="main" data-type="modules">
+ <div id="content" class="content-inner">
+ <div class="top-search">
+ <div class="search-settings">
+ <form class="search-bar" action="search.html">
+ <label class="search-label">
+ <span class="sr-only">Search documentation of arrow</span>
+ <input name="q" type="text" class="search-input" placeholder="Press / to search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
+ </label>
+ <button type="submit" class="search-button" aria-label="Submit Search" tabindex="-1">
+ <i class="ri-search-2-line ri-lg" aria-hidden="true"></i>
+ </button>
+ <button type="button" tabindex="-1" class="search-close-button" aria-hidden="true">
+ <i class="ri-close-line ri-lg" title="Cancel search"></i>
+ </button>
+ </form>
+ <div class="autocomplete">
+ </div>
+ <button class="icon-settings display-settings">
+ <i class="ri-settings-3-line"></i>
+ <span class="sr-only">Settings</span>
+ </button>
+ </div>
+ </div>
+
+<div id="top-content">
+ <div class="heading-with-actions top-heading">
+ <h1>
+ <span translate="no">arrow_ipc_file</span>
+ <small class="app-vsn" translate="no">(arrow v0.1.0)</small>
+
+ </h1>
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_file.erl#L18" title="View Source" class="icon-action" rel="help">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ <span class="sr-only">View Source</span>
+ </a>
+
+ </div>
+
+
+ <section id="moduledoc">
+<p>Provides records and functions to deal with the IPC File. The <a href="https://arrow.apache.org/docs/format/Columnar.html#ipc-file-format">IPC
+File</a> is an
+extension of the <a href="
+https://arrow.apache.org/docs/format/Columnar.html#ipc-streaming-format">IPC Stream</a> that
+supports random access with the help of a footer which contains the offsets of
+all the messages.</p>
+ </section>
+
+</div>
+
+ <section id="summary" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#summary">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Summary</span>
+ </h1>
+<div class="summary-types summary">
+ <h2>
+ <a href="#types">Types</a>
+ </h2>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:file/0" data-no-tooltip="" translate="no">file()</a>
+
+ </div>
+
+ </div>
+
+</div>
+<div class="summary-functions summary">
+ <h2>
+ <a href="#functions">Functions</a>
+ </h2>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#from_erlang/2" data-no-tooltip="" translate="no">from_erlang(Schema, RecordBatches)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Creates a file given a schema message and a list of record batch messages.</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#to_ipc/1" data-no-tooltip="" translate="no">to_ipc(File)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Serializes a file into the IPC File Format.</p></div>
+
+ </div>
+
+</div>
+
+ </section>
+
+
+ <section id="types" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#types">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Types</span>
+ </h1>
+ <div class="types-list">
+<section class="detail" id="t:file/0">
+
+ <div class="detail-header">
+ <a href="#t:file/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">file()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_file.erl#L32" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> file() ::
+ #file{footer ::
+ #footer{version :: <a href="arrow_ipc_message.html#t:metadata_version/0">arrow_ipc_message:metadata_version</a>(),
+ schema ::
+ #schema{endianness :: <a href="arrow_ipc_schema.html#t:endianness/0">arrow_ipc_schema:endianness</a>(),
+ fields :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:term/0">term</a>(),
+ custom_metadata :: [<a href="arrow_ipc_message.html#t:key_value/0">arrow_ipc_message:key_value</a>()],
+ features :: [<a href="arrow_ipc_schema.html#t:feature/0">arrow_ipc_schema:feature</a>()]},
+ dictionaries ::
+ [#block{offset :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:non_neg_integer/0">non_neg_integer</a>(),
+ metadata_length :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:non_neg_integer/0">non_neg_integer</a>(),
+ body_length :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:non_neg_integer/0">non_neg_integer</a>()}],
+ record_batches ::
+ [#block{offset :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:non_neg_integer/0">non_neg_integer</a>(),
+ metadata_length :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:non_neg_integer/0">non_neg_integer</a>(),
+ body_length :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:non_neg_integer/0">non_neg_integer</a>()}],
+ custom_metadata :: [<a href="arrow_ipc_message.html#t:key_value/0">arrow_ipc_message:key_value</a>()]},
+ body :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:binary/0">binary</a>()}.</pre>
+
+ </div>
+
+
+ </section>
+</section>
+
+ </div>
+ </section>
+
+ <section id="functions" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#functions">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Functions</span>
+ </h1>
+ <div class="functions-list">
+<section class="detail" id="from_erlang/2">
+
+ <div class="detail-header">
+ <a href="#from_erlang/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">from_erlang(Schema, RecordBatches)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_file.erl#L44" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> from_erlang(Schema :: <a href="arrow_ipc_message.html#t:message/0">arrow_ipc_message:message</a>(), RecordBatches :: [<a href="arrow_ipc_message.html#t:message/0">arrow_ipc_message:message</a>()]) ->
+ <a href="#t:file/0">file</a>().</pre>
+
+ </div>
+
+<p>Creates a file given a schema message and a list of record batch messages.</p>
+ </section>
+</section>
+<section class="detail" id="to_ipc/1">
+
+ <div class="detail-header">
+ <a href="#to_ipc/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">to_ipc(File)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_file.erl#L80" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> to_ipc(File :: <a href="#t:file/0">file</a>()) -> SerializedFile :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:binary/0">binary</a>().</pre>
+
+ </div>
+
+<p>Serializes a file into the IPC File Format.</p>
+ </section>
+</section>
+
+ </div>
+ </section>
+
+ <footer class="footer">
+ <p>
+
+ <span class="line">
+ <a href="https://hex.pm/packages/arrow/0.1.0" class="footer-hex-package">Hex Package</a>
+
+ <a href="https://preview.hex.pm/preview/arrow/0.1.0">Hex Preview</a>
+
+ </span>
+
+ <span class="line">
+ <button class="a-main footer-button display-quick-switch" title="Search HexDocs packages">
+ Search HexDocs
+ </button>
+
+ <a href="arrow.epub" title="ePub version">
+ Download ePub version
+ </a>
+
+ </span>
+ </p>
+
+ <p class="built-using">
+ Built using
+ <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.38.2) for the
+
+ <a href="https://erlang.org" title="Erlang" target="_blank" translate="no">Erlang programming language</a>
+
+ </p>
+
+ </footer>
+ </div>
+</main>
+</div>
+
+ </body>
+</html>
diff --git a/main/arrow_ipc_message.html b/main/arrow_ipc_message.html
new file mode 100644
index 0000000..7affb93
--- /dev/null
+++ b/main/arrow_ipc_message.html
@@ -0,0 +1,560 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="generator" content="ExDoc v0.38.2">
+ <meta name="project" content="arrow v0.1.0">
+
+
+ <title>arrow_ipc_message — arrow v0.1.0</title>
+
+ <link rel="stylesheet" href="dist/html-erlang-DQDXQC7W.css" />
+
+ <script defer src="dist/sidebar_items-DDBC4286.js"></script>
+ <script defer src="docs_config.js"></script>
+ <script defer src="dist/html-DPJLHKSM.js"></script>
+
+ </head>
+ <body>
+ <script>(()=>{var t="ex_doc:settings",e="dark";var o="dark",s="light";var E="sidebar_state",n="closed";var r="sidebar_width";var a="sidebar-open";var i=new URLSearchParams(window.location.search),S=i.get("theme")||JSON.parse(localStorage.getItem(t)||"{}").theme;(S===o||S!==s&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&document.body.classList.add(e);var d=sessionStorage.getItem(E),A=d!==n&&!window.matchMedia(`screen and (max-width: ${768}px)`).matches;document.body.cl [...]
+</script>
+
+<div class="body-wrapper">
+
+<button id="sidebar-menu" class="sidebar-button sidebar-toggle" aria-label="toggle sidebar" aria-controls="sidebar">
+ <i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i>
+</button>
+
+<nav id="sidebar" class="sidebar">
+
+ <div class="sidebar-header">
+ <div class="sidebar-projectInfo">
+
+ <div>
+ <a href="https://github.com/apache/arrow-erlang" class="sidebar-projectName" translate="no">
+arrow
+ </a>
+ <div class="sidebar-projectVersion" translate="no">
+ v0.1.0
+ </div>
+ </div>
+ </div>
+ <ul id="sidebar-list-nav" class="sidebar-list-nav" role="tablist" data-extras=""></ul>
+ </div>
+</nav>
+
+<output role="status" id="toast"></output>
+
+<main class="content page-module" id="main" data-type="modules">
+ <div id="content" class="content-inner">
+ <div class="top-search">
+ <div class="search-settings">
+ <form class="search-bar" action="search.html">
+ <label class="search-label">
+ <span class="sr-only">Search documentation of arrow</span>
+ <input name="q" type="text" class="search-input" placeholder="Press / to search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
+ </label>
+ <button type="submit" class="search-button" aria-label="Submit Search" tabindex="-1">
+ <i class="ri-search-2-line ri-lg" aria-hidden="true"></i>
+ </button>
+ <button type="button" tabindex="-1" class="search-close-button" aria-hidden="true">
+ <i class="ri-close-line ri-lg" title="Cancel search"></i>
+ </button>
+ </form>
+ <div class="autocomplete">
+ </div>
+ <button class="icon-settings display-settings">
+ <i class="ri-settings-3-line"></i>
+ <span class="sr-only">Settings</span>
+ </button>
+ </div>
+ </div>
+
+<div id="top-content">
+ <div class="heading-with-actions top-heading">
+ <h1>
+ <span translate="no">arrow_ipc_message</span>
+ <small class="app-vsn" translate="no">(arrow v0.1.0)</small>
+
+ </h1>
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_message.erl#L18" title="View Source" class="icon-action" rel="help">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ <span class="sr-only">View Source</span>
+ </a>
+
+ </div>
+
+
+ <section id="moduledoc">
+<p>Provides a record and functions to deal with the Encapsulated Message
+Format.</p><p>A Message is a serialized form of a
+<a href="https://arrow.apache.org/docs/format/Columnar.html#schema-message">Schema</a> or a
+<a href="https://arrow.apache.org/docs/format/Columnar.html#recordbatch-message">RecordBatch</a>
+(which may be required to read a serialized array) along with some metadata.
+This module provides a record and a function to manage all the metadata required
+to represent a message. Metadata such as:</p><ol><li> <code class="inline">version</code>: The Apache Arrow Format Version. One of <code class="inline">v1..v5</code>.
+Defaults to v5.</li><li> <code class="inline">header</code>: The metadata of the Schema or RecordBatch</li><li> <code class="inline">body_length</code>: The length of the body in bytes</li><li> <code class="inline">custom_metadata</code>: A list of custom metadata in key-value format</li><li> <code class="inline">body</code>: The actual body. Can be undefined (in the case of Schema)
+or a binary (in the case of Record Batch).</li></ol><p>Currently, changing the version and custom metadata are not supported, but they
+have been added for forwards compatibility.</p><p>This module also provides the <a href="#to_ipc/1"><code class="inline">to_ipc/1</code></a> function which serializes the message
+into the <a href="https://arrow.apache.org/docs/format/Columnar.html#encapsulated-message-format">Encapsulated Message
+Format</a>.
+However, this function gives <em>incomplete output</em> with invalid metadata, because
+of an unsatisfied dependency on flatbuffers, which is required for serializing
+the metadata.</p>
+ </section>
+
+</div>
+
+ <section id="summary" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#summary">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Summary</span>
+ </h1>
+<div class="summary-types summary">
+ <h2>
+ <a href="#types">Types</a>
+ </h2>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:key_value/0" data-no-tooltip="" translate="no">key_value()</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Key-Value structure for custom metadata. See the
+<a>definition</a>
+for more info</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:message/0" data-no-tooltip="" translate="no">message()</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Represents a Message.</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:metadata_version/0" data-no-tooltip="" translate="no">metadata_version()</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>The Arrow version. See the
+<a>definition</a>
+for more info</p></div>
+
+ </div>
+
+</div>
+<div class="summary-functions summary">
+ <h2>
+ <a href="#functions">Functions</a>
+ </h2>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#body_from_erlang/1" data-no-tooltip="" translate="no">body_from_erlang(Columns)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Returns the body of message from a list of arrays.</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#from_erlang/1" data-no-tooltip="" translate="no">from_erlang(Header)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Creates a message given a data header.</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#from_erlang/2" data-no-tooltip="" translate="no">from_erlang(Header, Body)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Creates a message given a data header and a body.</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#metadata_len/1" data-no-tooltip="" translate="no">metadata_len(EMF)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Returns the Metadata Length of an EMF.</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#to_ipc/1" data-no-tooltip="" translate="no">to_ipc(Message)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Serializes a message into the Encapsulated Message Format.</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#to_stream/1" data-no-tooltip="" translate="no">to_stream(Messages)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Serializes a list of messages or EMFs into a Stream.</p></div>
+
+ </div>
+
+</div>
+
+ </section>
+
+
+ <section id="types" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#types">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Types</span>
+ </h1>
+ <div class="types-list">
+<section class="detail" id="t:key_value/0">
+
+ <div class="detail-header">
+ <a href="#t:key_value/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">key_value()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_message.erl#L68" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> key_value() :: #{key => <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:string/0">string</a>(), value => <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:string/0">string</a>()}.</pre>
+
+ </div>
+
+<p>Key-Value structure for custom metadata. See the
+<a href="https://github.com/apache/arrow/blob/3456131ab7350bee5d9569ffd63d3f0ee713991c/format/Schema.fbs#L432-L439">definition</a>
+for more info:</p>
+ </section>
+</section>
+<section class="detail" id="t:message/0">
+
+ <div class="detail-header">
+ <a href="#t:message/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">message()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_message.erl#L54" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> message() ::
+ #message{version :: <a href="arrow_ipc_message.html#t:metadata_version/0">arrow_ipc_message:metadata_version</a>(),
+ header ::
+ #schema{endianness :: <a href="arrow_ipc_schema.html#t:endianness/0">arrow_ipc_schema:endianness</a>(),
+ fields :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:term/0">term</a>(),
+ custom_metadata :: [<a href="arrow_ipc_message.html#t:key_value/0">arrow_ipc_message:key_value</a>()],
+ features :: [<a href="arrow_ipc_schema.html#t:feature/0">arrow_ipc_schema:feature</a>()]} |
+ #record_batch{length :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:pos_integer/0">pos_integer</a>(),
+ nodes :: [<a href="arrow_ipc_record_batch.html#t:field_node/0">arrow_ipc_record_batch:field_node</a>()],
+ buffers :: [<a href="arrow_ipc_record_batch.html#t:buffer/0">arrow_ipc_record_batch:buffer</a>()],
+ compression :: undefined | lz4_frame | zstd},
+ body_length :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:non_neg_integer/0">non_neg_integer</a>(),
+ custom_metadata :: [<a href="arrow_ipc_message.html#t:key_value/0">arrow_ipc_message:key_value</a>()],
+ body :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:binary/0">binary</a>() | undefined}.</pre>
+
+ </div>
+
+<p>Represents a Message.</p>
+ </section>
+</section>
+<section class="detail" id="t:metadata_version/0">
+
+ <div class="detail-header">
+ <a href="#t:metadata_version/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">metadata_version()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_message.erl#L61" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> metadata_version() :: v1 | v2 | v3 | v4 | v5.</pre>
+
+ </div>
+
+<p>The Arrow version. See the
+<a href="https://github.com/apache/arrow/blob/3456131ab7350bee5d9569ffd63d3f0ee713991c/format/Schema.fbs#L28-L49">definition</a>
+for more info:</p>
+ </section>
+</section>
+
+ </div>
+ </section>
+
+ <section id="functions" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#functions">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Functions</span>
+ </h1>
+ <div class="functions-list">
+<section class="detail" id="body_from_erlang/1">
+
+ <div class="detail-header">
+ <a href="#body_from_erlang/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">body_from_erlang(Columns)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_message.erl#L149" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> body_from_erlang(Columns :: [<a href="arrow_array.html#t:array/0">arrow_array:array</a>()]) -> Body :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:binary/0">binary</a>().</pre>
+
+ </div>
+
+<p>Returns the body of message from a list of arrays.</p><p>Shorthand for:</p><pre><code class="makeup erlang" translate="no"><span class="p" data-group-id="1855103177-1"><<</span><span class="p" data-group-id="1855103177-2"><<</span><span class="p" data-group-id="1855103177-3">(</span><span class="nc">arrow_array</span><span class="p">:</span><span class="nf">to_arrow</span><span class="p" data-group-id="1855103177-4">(</span><span class="n">Array</span><span class="p" data- [...]
+ </section>
+</section>
+<section class="detail" id="from_erlang/1">
+
+ <div class="detail-header">
+ <a href="#from_erlang/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">from_erlang(Header)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_message.erl#L75" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> from_erlang(Header :: <a href="arrow_ipc_schema.html#t:schema/0">arrow_ipc_schema:schema</a>() | <a href="arrow_ipc_record_batch.html#t:record_batch/0">arrow_ipc_record_batch:record_batch</a>()) ->
+ Message :: <a href="#t:message/0">message</a>().</pre>
+
+ </div>
+
+<p>Creates a message given a data header.</p>
+ </section>
+</section>
+<section class="detail" id="from_erlang/2">
+
+ <div class="detail-header">
+ <a href="#from_erlang/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">from_erlang(Header, Body)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_message.erl#L84" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> from_erlang(Header :: <a href="arrow_ipc_schema.html#t:schema/0">arrow_ipc_schema:schema</a>() | <a href="arrow_ipc_record_batch.html#t:record_batch/0">arrow_ipc_record_batch:record_batch</a>(),
+ Body :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:binary/0">binary</a>()) ->
+ Message :: <a href="#t:message/0">message</a>().</pre>
+
+ </div>
+
+<p>Creates a message given a data header and a body.</p>
+ </section>
+</section>
+<section class="detail" id="metadata_len/1">
+
+ <div class="detail-header">
+ <a href="#metadata_len/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">metadata_len(EMF)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_message.erl#L132" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> metadata_len(EMF :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:binary/0">binary</a>()) -> MetadataLen :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:non_neg_integer/0">non_neg_integer</a>().</pre>
+
+ </div>
+
+<p>Returns the Metadata Length of an EMF.</p>
+ </section>
+</section>
+<section class="detail" id="to_ipc/1">
+
+ <div class="detail-header">
+ <a href="#to_ipc/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">to_ipc(Message)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_message.erl#L91" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> to_ipc(Message :: <a href="#t:message/0">message</a>()) -> EMF :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:binary/0">binary</a>().</pre>
+
+ </div>
+
+<p>Serializes a message into the Encapsulated Message Format.</p>
+ </section>
+</section>
+<section class="detail" id="to_stream/1">
+
+ <div class="detail-header">
+ <a href="#to_stream/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">to_stream(Messages)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_message.erl#L111" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> to_stream(Messages :: [<a href="#t:message/0">message</a>()] | [<a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:binary/0">binary</a>()]) -> Stream :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:binary/0">binary</a>().</pre>
+
+ </div>
+
+<p>Serializes a list of messages or EMFs into a Stream.</p>
+ </section>
+</section>
+
+ </div>
+ </section>
+
+ <footer class="footer">
+ <p>
+
+ <span class="line">
+ <a href="https://hex.pm/packages/arrow/0.1.0" class="footer-hex-package">Hex Package</a>
+
+ <a href="https://preview.hex.pm/preview/arrow/0.1.0">Hex Preview</a>
+
+ </span>
+
+ <span class="line">
+ <button class="a-main footer-button display-quick-switch" title="Search HexDocs packages">
+ Search HexDocs
+ </button>
+
+ <a href="arrow.epub" title="ePub version">
+ Download ePub version
+ </a>
+
+ </span>
+ </p>
+
+ <p class="built-using">
+ Built using
+ <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.38.2) for the
+
+ <a href="https://erlang.org" title="Erlang" target="_blank" translate="no">Erlang programming language</a>
+
+ </p>
+
+ </footer>
+ </div>
+</main>
+</div>
+
+ </body>
+</html>
diff --git a/main/arrow_ipc_record_batch.html b/main/arrow_ipc_record_batch.html
new file mode 100644
index 0000000..98d8ca7
--- /dev/null
+++ b/main/arrow_ipc_record_batch.html
@@ -0,0 +1,342 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="generator" content="ExDoc v0.38.2">
+ <meta name="project" content="arrow v0.1.0">
+
+
+ <title>arrow_ipc_record_batch — arrow v0.1.0</title>
+
+ <link rel="stylesheet" href="dist/html-erlang-DQDXQC7W.css" />
+
+ <script defer src="dist/sidebar_items-DDBC4286.js"></script>
+ <script defer src="docs_config.js"></script>
+ <script defer src="dist/html-DPJLHKSM.js"></script>
+
+ </head>
+ <body>
+ <script>(()=>{var t="ex_doc:settings",e="dark";var o="dark",s="light";var E="sidebar_state",n="closed";var r="sidebar_width";var a="sidebar-open";var i=new URLSearchParams(window.location.search),S=i.get("theme")||JSON.parse(localStorage.getItem(t)||"{}").theme;(S===o||S!==s&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&document.body.classList.add(e);var d=sessionStorage.getItem(E),A=d!==n&&!window.matchMedia(`screen and (max-width: ${768}px)`).matches;document.body.cl [...]
+</script>
+
+<div class="body-wrapper">
+
+<button id="sidebar-menu" class="sidebar-button sidebar-toggle" aria-label="toggle sidebar" aria-controls="sidebar">
+ <i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i>
+</button>
+
+<nav id="sidebar" class="sidebar">
+
+ <div class="sidebar-header">
+ <div class="sidebar-projectInfo">
+
+ <div>
+ <a href="https://github.com/apache/arrow-erlang" class="sidebar-projectName" translate="no">
+arrow
+ </a>
+ <div class="sidebar-projectVersion" translate="no">
+ v0.1.0
+ </div>
+ </div>
+ </div>
+ <ul id="sidebar-list-nav" class="sidebar-list-nav" role="tablist" data-extras=""></ul>
+ </div>
+</nav>
+
+<output role="status" id="toast"></output>
+
+<main class="content page-module" id="main" data-type="modules">
+ <div id="content" class="content-inner">
+ <div class="top-search">
+ <div class="search-settings">
+ <form class="search-bar" action="search.html">
+ <label class="search-label">
+ <span class="sr-only">Search documentation of arrow</span>
+ <input name="q" type="text" class="search-input" placeholder="Press / to search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
+ </label>
+ <button type="submit" class="search-button" aria-label="Submit Search" tabindex="-1">
+ <i class="ri-search-2-line ri-lg" aria-hidden="true"></i>
+ </button>
+ <button type="button" tabindex="-1" class="search-close-button" aria-hidden="true">
+ <i class="ri-close-line ri-lg" title="Cancel search"></i>
+ </button>
+ </form>
+ <div class="autocomplete">
+ </div>
+ <button class="icon-settings display-settings">
+ <i class="ri-settings-3-line"></i>
+ <span class="sr-only">Settings</span>
+ </button>
+ </div>
+ </div>
+
+<div id="top-content">
+ <div class="heading-with-actions top-heading">
+ <h1>
+ <span translate="no">arrow_ipc_record_batch</span>
+ <small class="app-vsn" translate="no">(arrow v0.1.0)</small>
+
+ </h1>
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_record_batch.erl#L18" title="View Source" class="icon-action" rel="help">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ <span class="sr-only">View Source</span>
+ </a>
+
+ </div>
+
+
+ <section id="moduledoc">
+<p>Provides a record and functions to deal with RecordBatches.</p><p>A <a href="https://github.com/apache/arrow/blob/16328f0ccc73b7df665b4a18feb6adf26b7aa0e2/format/Message.fbs#L81-L102">RecordBatch</a> represents a list of equal length arrays and their
+corresponding buffers. This module provides a record and a function to manage
+all the metadata required to represent a RecordBatch. Metadata such as:</p><ol><li><p> <code class="inline">length</code>: The number of rows or records. In other words, the
+length of an array.</p></li><li><p> <code class="inline">nodes</code>: A list of maps, where each map has the length and null
+count of an array</p></li><li><p> <code class="inline">buffers</code>: A list of maps, where each map has the length and the
+offset (from the beginning of the message body) of a buffer of an
+array.</p></li><li><p> <code class="inline">compression</code>: The compression applied on the body of the Record
+Batch. Can either be <code class="inline">undefined</code> (i.e. no compression), <code class="inline">zstd</code> for
+<a href="https://facebook.github.io/zstd/">Zstandard</a>, or <code class="inline">lz4_frame</code> for <a href="https://android.googlesource.com/platform/external/lz4/+/HEAD/doc/lz4_Frame_format.md">LZ4
+Frame</a>.
+Defaults to <code class="inline">undefined</code>.</p></li></ol><p>Currently, compression is not supported, but it has been added for forwards
+comapatibility.</p><p>You can find RecordBatches in the Arrow spec
+<a href="https://arrow.apache.org/docs/format/Columnar.html#recordbatch-message">here</a>.</p>
+ </section>
+
+</div>
+
+ <section id="summary" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#summary">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Summary</span>
+ </h1>
+<div class="summary-types summary">
+ <h2>
+ <a href="#types">Types</a>
+ </h2>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:buffer/0" data-no-tooltip="" translate="no">buffer()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:field_node/0" data-no-tooltip="" translate="no">field_node()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:record_batch/0" data-no-tooltip="" translate="no">record_batch()</a>
+
+ </div>
+
+ </div>
+
+</div>
+<div class="summary-functions summary">
+ <h2>
+ <a href="#functions">Functions</a>
+ </h2>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#from_erlang/1" data-no-tooltip="" translate="no">from_erlang(Arrays)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Creates a RecordBatch given a list of arrays</p></div>
+
+ </div>
+
+</div>
+
+ </section>
+
+
+ <section id="types" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#types">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Types</span>
+ </h1>
+ <div class="types-list">
+<section class="detail" id="t:buffer/0">
+
+ <div class="detail-header">
+ <a href="#t:buffer/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">buffer()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_record_batch.erl#L54" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> buffer() :: #{offset => <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:non_neg_integer/0">non_neg_integer</a>(), length => <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:pos_integer/0">pos_integer</a>()}.</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:field_node/0">
+
+ <div class="detail-header">
+ <a href="#t:field_node/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">field_node()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_record_batch.erl#L53" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> field_node() :: #{length => <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:pos_integer/0">pos_integer</a>(), null_count => <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:non_neg_integer/0">non_neg_integer</a>()}.</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:record_batch/0">
+
+ <div class="detail-header">
+ <a href="#t:record_batch/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">record_batch()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_record_batch.erl#L55" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> record_batch() ::
+ #record_batch{length :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:pos_integer/0">pos_integer</a>(),
+ nodes :: [<a href="arrow_ipc_record_batch.html#t:field_node/0">arrow_ipc_record_batch:field_node</a>()],
+ buffers :: [<a href="arrow_ipc_record_batch.html#t:buffer/0">arrow_ipc_record_batch:buffer</a>()],
+ compression :: undefined | lz4_frame | zstd}.</pre>
+
+ </div>
+
+
+ </section>
+</section>
+
+ </div>
+ </section>
+
+ <section id="functions" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#functions">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Functions</span>
+ </h1>
+ <div class="functions-list">
+<section class="detail" id="from_erlang/1">
+
+ <div class="detail-header">
+ <a href="#from_erlang/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">from_erlang(Arrays)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_record_batch.erl#L61" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> from_erlang(Arrays :: [<a href="arrow_array.html#t:array/0">arrow_array:array</a>()]) -> RecordBatch :: <a href="#t:record_batch/0">record_batch</a>().</pre>
+
+ </div>
+
+<p>Creates a RecordBatch given a list of arrays</p>
+ </section>
+</section>
+
+ </div>
+ </section>
+
+ <footer class="footer">
+ <p>
+
+ <span class="line">
+ <a href="https://hex.pm/packages/arrow/0.1.0" class="footer-hex-package">Hex Package</a>
+
+ <a href="https://preview.hex.pm/preview/arrow/0.1.0">Hex Preview</a>
+
+ </span>
+
+ <span class="line">
+ <button class="a-main footer-button display-quick-switch" title="Search HexDocs packages">
+ Search HexDocs
+ </button>
+
+ <a href="arrow.epub" title="ePub version">
+ Download ePub version
+ </a>
+
+ </span>
+ </p>
+
+ <p class="built-using">
+ Built using
+ <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.38.2) for the
+
+ <a href="https://erlang.org" title="Erlang" target="_blank" translate="no">Erlang programming language</a>
+
+ </p>
+
+ </footer>
+ </div>
+</main>
+</div>
+
+ </body>
+</html>
diff --git a/main/arrow_ipc_schema.html b/main/arrow_ipc_schema.html
new file mode 100644
index 0000000..427161b
--- /dev/null
+++ b/main/arrow_ipc_schema.html
@@ -0,0 +1,345 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="generator" content="ExDoc v0.38.2">
+ <meta name="project" content="arrow v0.1.0">
+
+
+ <title>arrow_ipc_schema — arrow v0.1.0</title>
+
+ <link rel="stylesheet" href="dist/html-erlang-DQDXQC7W.css" />
+
+ <script defer src="dist/sidebar_items-DDBC4286.js"></script>
+ <script defer src="docs_config.js"></script>
+ <script defer src="dist/html-DPJLHKSM.js"></script>
+
+ </head>
+ <body>
+ <script>(()=>{var t="ex_doc:settings",e="dark";var o="dark",s="light";var E="sidebar_state",n="closed";var r="sidebar_width";var a="sidebar-open";var i=new URLSearchParams(window.location.search),S=i.get("theme")||JSON.parse(localStorage.getItem(t)||"{}").theme;(S===o||S!==s&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&document.body.classList.add(e);var d=sessionStorage.getItem(E),A=d!==n&&!window.matchMedia(`screen and (max-width: ${768}px)`).matches;document.body.cl [...]
+</script>
+
+<div class="body-wrapper">
+
+<button id="sidebar-menu" class="sidebar-button sidebar-toggle" aria-label="toggle sidebar" aria-controls="sidebar">
+ <i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i>
+</button>
+
+<nav id="sidebar" class="sidebar">
+
+ <div class="sidebar-header">
+ <div class="sidebar-projectInfo">
+
+ <div>
+ <a href="https://github.com/apache/arrow-erlang" class="sidebar-projectName" translate="no">
+arrow
+ </a>
+ <div class="sidebar-projectVersion" translate="no">
+ v0.1.0
+ </div>
+ </div>
+ </div>
+ <ul id="sidebar-list-nav" class="sidebar-list-nav" role="tablist" data-extras=""></ul>
+ </div>
+</nav>
+
+<output role="status" id="toast"></output>
+
+<main class="content page-module" id="main" data-type="modules">
+ <div id="content" class="content-inner">
+ <div class="top-search">
+ <div class="search-settings">
+ <form class="search-bar" action="search.html">
+ <label class="search-label">
+ <span class="sr-only">Search documentation of arrow</span>
+ <input name="q" type="text" class="search-input" placeholder="Press / to search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
+ </label>
+ <button type="submit" class="search-button" aria-label="Submit Search" tabindex="-1">
+ <i class="ri-search-2-line ri-lg" aria-hidden="true"></i>
+ </button>
+ <button type="button" tabindex="-1" class="search-close-button" aria-hidden="true">
+ <i class="ri-close-line ri-lg" title="Cancel search"></i>
+ </button>
+ </form>
+ <div class="autocomplete">
+ </div>
+ <button class="icon-settings display-settings">
+ <i class="ri-settings-3-line"></i>
+ <span class="sr-only">Settings</span>
+ </button>
+ </div>
+ </div>
+
+<div id="top-content">
+ <div class="heading-with-actions top-heading">
+ <h1>
+ <span translate="no">arrow_ipc_schema</span>
+ <small class="app-vsn" translate="no">(arrow v0.1.0)</small>
+
+ </h1>
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_schema.erl#L18" title="View Source" class="icon-action" rel="help">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ <span class="sr-only">View Source</span>
+ </a>
+
+ </div>
+
+
+ <section id="moduledoc">
+<p>Provides a record and functions to deal with Schemas.</p><p>A <a href="https://github.com/apache/arrow/blob/3456131ab7350bee5d9569ffd63d3f0ee713991c/format/Schema.fbs#L514-L530">Schema</a>
+represents a table, or a list of arrays of equal length. This module provides a
+record and a function to manage all the metadata required to represent a schema.
+Metadata such as:</p><ol><li> <code class="inline">endianness</code>: The Endianness of the table. One of <code class="inline">little</code> or
+<code class="inline">big</code>. Defaults to <code class="inline">little</code>.</li><li> <code class="inline">fields</code>: The list of <a href="https://github.com/apache/arrow/blob/3456131ab7350bee5d9569ffd63d3f0ee713991c/format/Schema.fbs#L469-L492">fields</a> in a table.</li><li> <code class="inline">type</code>: The Layout of the column</li><li> <code class="inline">custom_metadata</code>: A list of custom metadata in key-value format</li><li> <code class="inline">features</code>: [...]
+present in other implementations of Arrow.</li></ol><p>Currently, big endianness, custom metadata and features are not supported, but
+they have been added for forwards compatibility.</p><p>You can find Schemas in the Arrow spec
+<a href="https://arrow.apache.org/docs/format/Columnar.html#schema-message">here</a>.</p>
+ </section>
+
+</div>
+
+ <section id="summary" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#summary">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Summary</span>
+ </h1>
+<div class="summary-types summary">
+ <h2>
+ <a href="#types">Types</a>
+ </h2>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:endianness/0" data-no-tooltip="" translate="no">endianness()</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Endianness of the data. Either <code class="inline">little</code> or <code class="inline">big</code>.</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:feature/0" data-no-tooltip="" translate="no">feature()</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Features used in the data which may not be present in other implementations.
+See the <a>definition</a>.</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:schema/0" data-no-tooltip="" translate="no">schema()</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Represents a schema</p></div>
+
+ </div>
+
+</div>
+<div class="summary-functions summary">
+ <h2>
+ <a href="#functions">Functions</a>
+ </h2>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#from_erlang/1" data-no-tooltip="" translate="no">from_erlang(Fields)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Creates a Schema given an ordered list of fields.</p></div>
+
+ </div>
+
+</div>
+
+ </section>
+
+
+ <section id="types" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#types">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Types</span>
+ </h1>
+ <div class="types-list">
+<section class="detail" id="t:endianness/0">
+
+ <div class="detail-header">
+ <a href="#t:endianness/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">endianness()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_schema.erl#L47" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> endianness() :: little | big.</pre>
+
+ </div>
+
+<p>Endianness of the data. Either <code class="inline">little</code> or <code class="inline">big</code>.</p>
+ </section>
+</section>
+<section class="detail" id="t:feature/0">
+
+ <div class="detail-header">
+ <a href="#t:feature/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">feature()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_schema.erl#L53" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> feature() :: unused | dictionary_replacement | compressed_body.</pre>
+
+ </div>
+
+<p>Features used in the data which may not be present in other implementations.
+See the <a href="https://github.com/apache/arrow/blob/3456131ab7350bee5d9569ffd63d3f0ee713991c/format/Schema.fbs#L51-L78">definition</a>.</p>
+ </section>
+</section>
+<section class="detail" id="t:schema/0">
+
+ <div class="detail-header">
+ <a href="#t:schema/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">schema()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_schema.erl#L56" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> schema() ::
+ #schema{endianness :: <a href="arrow_ipc_schema.html#t:endianness/0">arrow_ipc_schema:endianness</a>(),
+ fields :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:term/0">term</a>(),
+ custom_metadata :: [<a href="arrow_ipc_message.html#t:key_value/0">arrow_ipc_message:key_value</a>()],
+ features :: [<a href="arrow_ipc_schema.html#t:feature/0">arrow_ipc_schema:feature</a>()]}.</pre>
+
+ </div>
+
+<p>Represents a schema</p>
+ </section>
+</section>
+
+ </div>
+ </section>
+
+ <section id="functions" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#functions">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Functions</span>
+ </h1>
+ <div class="functions-list">
+<section class="detail" id="from_erlang/1">
+
+ <div class="detail-header">
+ <a href="#from_erlang/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">from_erlang(Fields)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_schema.erl#L62" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> from_erlang(Fields :: [<a href="arrow_ipc_field.html#t:field/0">arrow_ipc_field:field</a>()]) -> Schema :: <a href="#t:schema/0">schema</a>().</pre>
+
+ </div>
+
+<p>Creates a Schema given an ordered list of fields.</p>
+ </section>
+</section>
+
+ </div>
+ </section>
+
+ <footer class="footer">
+ <p>
+
+ <span class="line">
+ <a href="https://hex.pm/packages/arrow/0.1.0" class="footer-hex-package">Hex Package</a>
+
+ <a href="https://preview.hex.pm/preview/arrow/0.1.0">Hex Preview</a>
+
+ </span>
+
+ <span class="line">
+ <button class="a-main footer-button display-quick-switch" title="Search HexDocs packages">
+ Search HexDocs
+ </button>
+
+ <a href="arrow.epub" title="ePub version">
+ Download ePub version
+ </a>
+
+ </span>
+ </p>
+
+ <p class="built-using">
+ Built using
+ <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.38.2) for the
+
+ <a href="https://erlang.org" title="Erlang" target="_blank" translate="no">Erlang programming language</a>
+
+ </p>
+
+ </footer>
+ </div>
+</main>
+</div>
+
+ </body>
+</html>
diff --git a/main/arrow_ipc_type.html b/main/arrow_ipc_type.html
new file mode 100644
index 0000000..70586a5
--- /dev/null
+++ b/main/arrow_ipc_type.html
@@ -0,0 +1,440 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="generator" content="ExDoc v0.38.2">
+ <meta name="project" content="arrow v0.1.0">
+
+
+ <title>arrow_ipc_type — arrow v0.1.0</title>
+
+ <link rel="stylesheet" href="dist/html-erlang-DQDXQC7W.css" />
+
+ <script defer src="dist/sidebar_items-DDBC4286.js"></script>
+ <script defer src="docs_config.js"></script>
+ <script defer src="dist/html-DPJLHKSM.js"></script>
+
+ </head>
+ <body>
+ <script>(()=>{var t="ex_doc:settings",e="dark";var o="dark",s="light";var E="sidebar_state",n="closed";var r="sidebar_width";var a="sidebar-open";var i=new URLSearchParams(window.location.search),S=i.get("theme")||JSON.parse(localStorage.getItem(t)||"{}").theme;(S===o||S!==s&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&document.body.classList.add(e);var d=sessionStorage.getItem(E),A=d!==n&&!window.matchMedia(`screen and (max-width: ${768}px)`).matches;document.body.cl [...]
+</script>
+
+<div class="body-wrapper">
+
+<button id="sidebar-menu" class="sidebar-button sidebar-toggle" aria-label="toggle sidebar" aria-controls="sidebar">
+ <i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i>
+</button>
+
+<nav id="sidebar" class="sidebar">
+
+ <div class="sidebar-header">
+ <div class="sidebar-projectInfo">
+
+ <div>
+ <a href="https://github.com/apache/arrow-erlang" class="sidebar-projectName" translate="no">
+arrow
+ </a>
+ <div class="sidebar-projectVersion" translate="no">
+ v0.1.0
+ </div>
+ </div>
+ </div>
+ <ul id="sidebar-list-nav" class="sidebar-list-nav" role="tablist" data-extras=""></ul>
+ </div>
+</nav>
+
+<output role="status" id="toast"></output>
+
+<main class="content page-module" id="main" data-type="modules">
+ <div id="content" class="content-inner">
+ <div class="top-search">
+ <div class="search-settings">
+ <form class="search-bar" action="search.html">
+ <label class="search-label">
+ <span class="sr-only">Search documentation of arrow</span>
+ <input name="q" type="text" class="search-input" placeholder="Press / to search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
+ </label>
+ <button type="submit" class="search-button" aria-label="Submit Search" tabindex="-1">
+ <i class="ri-search-2-line ri-lg" aria-hidden="true"></i>
+ </button>
+ <button type="button" tabindex="-1" class="search-close-button" aria-hidden="true">
+ <i class="ri-close-line ri-lg" title="Cancel search"></i>
+ </button>
+ </form>
+ <div class="autocomplete">
+ </div>
+ <button class="icon-settings display-settings">
+ <i class="ri-settings-3-line"></i>
+ <span class="sr-only">Settings</span>
+ </button>
+ </div>
+ </div>
+
+<div id="top-content">
+ <div class="heading-with-actions top-heading">
+ <h1>
+ <span translate="no">arrow_ipc_type</span>
+ <small class="app-vsn" translate="no">(arrow v0.1.0)</small>
+
+ </h1>
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_type.erl#L18" title="View Source" class="icon-action" rel="help">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ <span class="sr-only">View Source</span>
+ </a>
+
+ </div>
+
+
+ <section id="moduledoc">
+<p>Provides types and functions to work with IPC types. </p><p>This module provides functions and types to produce the types in IPC Schema
+<a href="https://github.com/apache/arrow/blob/main/format/Schema.fbs">definitions</a>.
+These types are generated according to <code class="inline">Type</code> union in the schema. The types
+have been represented in the form <code class="inline">{TypeName, Metadata}</code>, where <code class="inline">TypeName</code> is
+the name of the type and is an atom, and <code class="inline">Metadata</code> is a map of all the metadata
+associated with it. In case a type has no metadata associated with it, it is
+represented as just <code class="inline">TypeName</code>.</p>
+ </section>
+
+</div>
+
+ <section id="summary" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#summary">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Summary</span>
+ </h1>
+<div class="summary-types summary">
+ <h2>
+ <a href="#types">Types</a>
+ </h2>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:fixed_size_list/0" data-no-tooltip="" translate="no">fixed_size_list()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:floating_point/0" data-no-tooltip="" translate="no">floating_point()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:int/0" data-no-tooltip="" translate="no">int()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:ipc_type/0" data-no-tooltip="" translate="no">ipc_type()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:large_binary/0" data-no-tooltip="" translate="no">large_binary()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:large_list/0" data-no-tooltip="" translate="no">large_list()</a>
+
+ </div>
+
+ </div>
+
+</div>
+<div class="summary-functions summary">
+ <h2>
+ <a href="#functions">Functions</a>
+ </h2>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#from_erlang/1" data-no-tooltip="" translate="no">from_erlang(Array)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Returns the IPC Type for an <a><code class="inline">arrow_array:array/0</code></a>.</p></div>
+
+ </div>
+
+</div>
+
+ </section>
+
+
+ <section id="types" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#types">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Types</span>
+ </h1>
+ <div class="types-list">
+<section class="detail" id="t:fixed_size_list/0">
+
+ <div class="detail-header">
+ <a href="#t:fixed_size_list/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">fixed_size_list()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_type.erl#L78" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> fixed_size_list() :: {fixed_size_list, #{list_size => <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:pos_integer/0">pos_integer</a>()}}.</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:floating_point/0">
+
+ <div class="detail-header">
+ <a href="#t:floating_point/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">floating_point()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_type.erl#L75" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> floating_point() :: {floating_point, #{precision => half | single | double}}.</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:int/0">
+
+ <div class="detail-header">
+ <a href="#t:int/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">int()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_type.erl#L72" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> int() :: {int, #{bit_width => <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:pos_integer/0">pos_integer</a>(), is_signed => <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:boolean/0">boolean</a>()}}.</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:ipc_type/0">
+
+ <div class="detail-header">
+ <a href="#t:ipc_type/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">ipc_type()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_type.erl#L46" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> ipc_type() :: <a href="#t:int/0">int</a>() | <a href="#t:floating_point/0">floating_point</a>() | <a href="#t:fixed_size_list/0">fixed_size_list</a>() | <a href="#t:large_binary/0">large_binary</a>() | <a href="#t:large_list/0">large_list</a>().</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:large_binary/0">
+
+ <div class="detail-header">
+ <a href="#t:large_binary/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">large_binary()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_type.erl#L81" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> large_binary() :: large_binary.</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:large_list/0">
+
+ <div class="detail-header">
+ <a href="#t:large_list/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">large_list()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_type.erl#L84" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> large_list() :: large_list.</pre>
+
+ </div>
+
+
+ </section>
+</section>
+
+ </div>
+ </section>
+
+ <section id="functions" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#functions">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Functions</span>
+ </h1>
+ <div class="functions-list">
+<section class="detail" id="from_erlang/1">
+
+ <div class="detail-header">
+ <a href="#from_erlang/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">from_erlang(Array)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_ipc_type.erl#L95" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> from_erlang(Array :: <a href="arrow_array.html#t:array/0">arrow_array:array</a>()) -> Type :: <a href="#t:ipc_type/0">ipc_type</a>().</pre>
+
+ </div>
+
+<p>Returns the IPC Type for an <a href="arrow_array.html#t:array/0"><code class="inline">arrow_array:array/0</code></a>.</p>
+ </section>
+</section>
+
+ </div>
+ </section>
+
+ <footer class="footer">
+ <p>
+
+ <span class="line">
+ <a href="https://hex.pm/packages/arrow/0.1.0" class="footer-hex-package">Hex Package</a>
+
+ <a href="https://preview.hex.pm/preview/arrow/0.1.0">Hex Preview</a>
+
+ </span>
+
+ <span class="line">
+ <button class="a-main footer-button display-quick-switch" title="Search HexDocs packages">
+ Search HexDocs
+ </button>
+
+ <a href="arrow.epub" title="ePub version">
+ Download ePub version
+ </a>
+
+ </span>
+ </p>
+
+ <p class="built-using">
+ Built using
+ <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.38.2) for the
+
+ <a href="https://erlang.org" title="Erlang" target="_blank" translate="no">Erlang programming language</a>
+
+ </p>
+
+ </footer>
+ </div>
+</main>
+</div>
+
+ </body>
+</html>
diff --git a/main/arrow_offsets.html b/main/arrow_offsets.html
new file mode 100644
index 0000000..8406b23
--- /dev/null
+++ b/main/arrow_offsets.html
@@ -0,0 +1,252 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="generator" content="ExDoc v0.38.2">
+ <meta name="project" content="arrow v0.1.0">
+
+
+ <title>arrow_offsets — arrow v0.1.0</title>
+
+ <link rel="stylesheet" href="dist/html-erlang-DQDXQC7W.css" />
+
+ <script defer src="dist/sidebar_items-DDBC4286.js"></script>
+ <script defer src="docs_config.js"></script>
+ <script defer src="dist/html-DPJLHKSM.js"></script>
+
+ </head>
+ <body>
+ <script>(()=>{var t="ex_doc:settings",e="dark";var o="dark",s="light";var E="sidebar_state",n="closed";var r="sidebar_width";var a="sidebar-open";var i=new URLSearchParams(window.location.search),S=i.get("theme")||JSON.parse(localStorage.getItem(t)||"{}").theme;(S===o||S!==s&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&document.body.classList.add(e);var d=sessionStorage.getItem(E),A=d!==n&&!window.matchMedia(`screen and (max-width: ${768}px)`).matches;document.body.cl [...]
+</script>
+
+<div class="body-wrapper">
+
+<button id="sidebar-menu" class="sidebar-button sidebar-toggle" aria-label="toggle sidebar" aria-controls="sidebar">
+ <i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i>
+</button>
+
+<nav id="sidebar" class="sidebar">
+
+ <div class="sidebar-header">
+ <div class="sidebar-projectInfo">
+
+ <div>
+ <a href="https://github.com/apache/arrow-erlang" class="sidebar-projectName" translate="no">
+arrow
+ </a>
+ <div class="sidebar-projectVersion" translate="no">
+ v0.1.0
+ </div>
+ </div>
+ </div>
+ <ul id="sidebar-list-nav" class="sidebar-list-nav" role="tablist" data-extras=""></ul>
+ </div>
+</nav>
+
+<output role="status" id="toast"></output>
+
+<main class="content page-module" id="main" data-type="modules">
+ <div id="content" class="content-inner">
+ <div class="top-search">
+ <div class="search-settings">
+ <form class="search-bar" action="search.html">
+ <label class="search-label">
+ <span class="sr-only">Search documentation of arrow</span>
+ <input name="q" type="text" class="search-input" placeholder="Press / to search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
+ </label>
+ <button type="submit" class="search-button" aria-label="Submit Search" tabindex="-1">
+ <i class="ri-search-2-line ri-lg" aria-hidden="true"></i>
+ </button>
+ <button type="button" tabindex="-1" class="search-close-button" aria-hidden="true">
+ <i class="ri-close-line ri-lg" title="Cancel search"></i>
+ </button>
+ </form>
+ <div class="autocomplete">
+ </div>
+ <button class="icon-settings display-settings">
+ <i class="ri-settings-3-line"></i>
+ <span class="sr-only">Settings</span>
+ </button>
+ </div>
+ </div>
+
+<div id="top-content">
+ <div class="heading-with-actions top-heading">
+ <h1>
+ <span translate="no">arrow_offsets</span>
+ <small class="app-vsn" translate="no">(arrow v0.1.0)</small>
+
+ </h1>
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_offsets.erl#L18" title="View Source" class="icon-action" rel="help">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ <span class="sr-only">View Source</span>
+ </a>
+
+ </div>
+
+
+ <section id="moduledoc">
+<p>Provides support for Apache Arrow's Offsets</p><p>Arrow has a concept of
+<a href="https://arrow.apache.org/docs/format/Columnar.html#variable-size-binary-layout">offsets</a>
+in order to tell the length of a
+<a href="https://arrow.apache.org/docs/format/Columnar.html#terminology">slot</a> or a
+single element in an array of variable-size elements. This module provides
+support for generating offsets.</p><p>There are couple of things to remember about offsets:</p><p>Firstly, each element in the offsets corresponds to the distance in bytes of the
+corresponding element in the values from the beginning of the buffer.</p><p>I.E., distance of <code class="inline">values[j]</code> from beginning of the buffer = <code class="inline">offsets[j]</code>.</p><p>Secondly, the very last element in the offsets is the length of the buffer, or
+distance of the end of the last slot from the beginning of the buffer.</p><p>Thus, the offsets is one element longer than the values, or:</p><pre><code class="makeup erlang" translate="no"><span class="nf">length</span><span class="p" data-group-id="1736369887-1">(</span><span class="ss">offsets</span><span class="p" data-group-id="1736369887-1">)</span><span class="w"> </span><span class="o">==</span><span class="w"> </span><span class="nf">length</span><span class="p" data-group-id="17 [...]
+current element from the offset of the next element, or:</p><pre><code class="makeup erlang" translate="no"><span class="ss">slot</span><span class="p" data-group-id="4305104627-1">[</span><span class="ss">j</span><span class="p" data-group-id="4305104627-1">]</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="ss">offsets</span><span class="p" data-group-id="4305104627-2">[</span><span class="ss">j</span><span class="w"> </span><span class="o">+</s [...]
+Thus, the previous offset and the current offset are equivalent if the current
+element is a null.</p>
+ </section>
+
+</div>
+
+ <section id="summary" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#summary">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Summary</span>
+ </h1>
+<div class="summary-functions summary">
+ <h2>
+ <a href="#functions">Functions</a>
+ </h2>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#new/2" data-no-tooltip="" translate="no">new(Value, Type)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Returns the offsets array given some values and their type as a buffer.</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#new/3" data-no-tooltip="" translate="no">new(Value, Type, Length)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Returns the offsets array given some values, their type and length as a buffer.</p></div>
+
+ </div>
+
+</div>
+
+ </section>
+
+
+ <section id="functions" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#functions">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Functions</span>
+ </h1>
+ <div class="functions-list">
+<section class="detail" id="new/2">
+
+ <div class="detail-header">
+ <a href="#new/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">new(Value, Type)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_offsets.erl#L66" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> new(Value :: [<a href="arrow_type.html#t:native_type/0">arrow_type:native_type</a>()], Type :: <a href="arrow_type.html#t:arrow_longhand_type/0">arrow_type:arrow_longhand_type</a>()) ->
+ Buffer :: <a href="arrow_buffer.html#t:buffer/0">arrow_buffer:buffer</a>().</pre>
+
+ </div>
+
+<p>Returns the offsets array given some values and their type as a buffer.</p>
+ </section>
+</section>
+<section class="detail" id="new/3">
+
+ <div class="detail-header">
+ <a href="#new/3" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">new(Value, Type, Length)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_offsets.erl#L78" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> new(Value :: [<a href="arrow_type.html#t:native_type/0">arrow_type:native_type</a>()],
+ Type :: <a href="arrow_type.html#t:arrow_longhand_type/0">arrow_type:arrow_longhand_type</a>(),
+ Length :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:pos_integer/0">pos_integer</a>()) ->
+ Buffer :: <a href="arrow_buffer.html#t:buffer/0">arrow_buffer:buffer</a>().</pre>
+
+ </div>
+
+<p>Returns the offsets array given some values, their type and length as a buffer.</p>
+ </section>
+</section>
+
+ </div>
+ </section>
+
+ <footer class="footer">
+ <p>
+
+ <span class="line">
+ <a href="https://hex.pm/packages/arrow/0.1.0" class="footer-hex-package">Hex Package</a>
+
+ <a href="https://preview.hex.pm/preview/arrow/0.1.0">Hex Preview</a>
+
+ </span>
+
+ <span class="line">
+ <button class="a-main footer-button display-quick-switch" title="Search HexDocs packages">
+ Search HexDocs
+ </button>
+
+ <a href="arrow.epub" title="ePub version">
+ Download ePub version
+ </a>
+
+ </span>
+ </p>
+
+ <p class="built-using">
+ Built using
+ <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.38.2) for the
+
+ <a href="https://erlang.org" title="Erlang" target="_blank" translate="no">Erlang programming language</a>
+
+ </p>
+
+ </footer>
+ </div>
+</main>
+</div>
+
+ </body>
+</html>
diff --git a/main/arrow_type.html b/main/arrow_type.html
new file mode 100644
index 0000000..c7f01b3
--- /dev/null
+++ b/main/arrow_type.html
@@ -0,0 +1,1207 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="generator" content="ExDoc v0.38.2">
+ <meta name="project" content="arrow v0.1.0">
+
+
+ <title>arrow_type — arrow v0.1.0</title>
+
+ <link rel="stylesheet" href="dist/html-erlang-DQDXQC7W.css" />
+
+ <script defer src="dist/sidebar_items-DDBC4286.js"></script>
+ <script defer src="docs_config.js"></script>
+ <script defer src="dist/html-DPJLHKSM.js"></script>
+
+ </head>
+ <body>
+ <script>(()=>{var t="ex_doc:settings",e="dark";var o="dark",s="light";var E="sidebar_state",n="closed";var r="sidebar_width";var a="sidebar-open";var i=new URLSearchParams(window.location.search),S=i.get("theme")||JSON.parse(localStorage.getItem(t)||"{}").theme;(S===o||S!==s&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&document.body.classList.add(e);var d=sessionStorage.getItem(E),A=d!==n&&!window.matchMedia(`screen and (max-width: ${768}px)`).matches;document.body.cl [...]
+</script>
+
+<div class="body-wrapper">
+
+<button id="sidebar-menu" class="sidebar-button sidebar-toggle" aria-label="toggle sidebar" aria-controls="sidebar">
+ <i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i>
+</button>
+
+<nav id="sidebar" class="sidebar">
+
+ <div class="sidebar-header">
+ <div class="sidebar-projectInfo">
+
+ <div>
+ <a href="https://github.com/apache/arrow-erlang" class="sidebar-projectName" translate="no">
+arrow
+ </a>
+ <div class="sidebar-projectVersion" translate="no">
+ v0.1.0
+ </div>
+ </div>
+ </div>
+ <ul id="sidebar-list-nav" class="sidebar-list-nav" role="tablist" data-extras=""></ul>
+ </div>
+</nav>
+
+<output role="status" id="toast"></output>
+
+<main class="content page-module" id="main" data-type="modules">
+ <div id="content" class="content-inner">
+ <div class="top-search">
+ <div class="search-settings">
+ <form class="search-bar" action="search.html">
+ <label class="search-label">
+ <span class="sr-only">Search documentation of arrow</span>
+ <input name="q" type="text" class="search-input" placeholder="Press / to search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
+ </label>
+ <button type="submit" class="search-button" aria-label="Submit Search" tabindex="-1">
+ <i class="ri-search-2-line ri-lg" aria-hidden="true"></i>
+ </button>
+ <button type="button" tabindex="-1" class="search-close-button" aria-hidden="true">
+ <i class="ri-close-line ri-lg" title="Cancel search"></i>
+ </button>
+ </form>
+ <div class="autocomplete">
+ </div>
+ <button class="icon-settings display-settings">
+ <i class="ri-settings-3-line"></i>
+ <span class="sr-only">Settings</span>
+ </button>
+ </div>
+ </div>
+
+<div id="top-content">
+ <div class="heading-with-actions top-heading">
+ <h1>
+ <span translate="no">arrow_type</span>
+ <small class="app-vsn" translate="no">(arrow v0.1.0)</small>
+
+ </h1>
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L18" title="View Source" class="icon-action" rel="help">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ <span class="sr-only">View Source</span>
+ </a>
+
+ </div>
+
+
+ <section id="moduledoc">
+<p>Provides representation for as well as functions for working with Arrow
+specific datatypes.</p><p>This module provides longhand (a 2 tuple) as well as shorthand (an atom)
+representations for representing primitive types. Additionally it represents
+Nested Types (i.e. Lists) as well as Native Types (i.e. Erlang Native Types that
+are supported by this package).</p><p>Generally, when we say an array A has type X, we mean that each element in A
+has type X. Thus, an array of type of <code class="inline">Int8</code> would look like <code class="inline">[1, 2, 3]</code>, but
+an array of type <code class="inline">List<Int8></code> would look like <code class="inline">[[1, 2], [3]]</code>.</p><h2 id="module-primitive-types" class="section-heading"><a href="#module-primitive-types" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i></a><span class="text">Primitive Types</span></h2><p>A Primitive Type is any type that refers to a single value (as opposed to a
+list of values). Currently it includes Booleans, Signed Integers, Unsigned
+Integers, Floats and Binaries. Both a longhand and shorthand syntax had been
+provided to initiate a type.</p><p>The following is a comprehensive list of all supported primitive types:</p><ol><li> Booleans</li><li> Signed Integers: Includes <code class="inline">Int 8</code>, <code class="inline">Int 16</code>, <code class="inline">Int 32</code> and
+<code class="inline">Int 64</code></li><li> Unsigned Integers: Includes <code class="inline">UInt 8</code>, <code class="inline">UInt 16</code>, <code class="inline">UInt 32</code> and
+<code class="inline">UInt 64</code></li><li> Floats: Includes <code class="inline">Float 16</code>, <code class="inline">Float 32</code> and <code class="inline">Float 64</code></li><li> Binaries</li></ol><h3 id="module-shorthand-syntax" class="section-heading"><a href="#module-shorthand-syntax" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i></a><span class="text">Shorthand Syntax</span></h3><p>In the shorthand syntax, you can just use a single atom to refer to a type,
+such that the atom is <code class="inline"><name><size></code>. The name is a single letter that refers
+to the type, and the size is that type's size in bits. Take the example of
+<code class="inline">Int 8</code>. Its name is <code class="inline">s</code>, and size is <code class="inline">8</code>. Thus in shorthand, it is <code class="inline">s8</code>. In
+the case of datatypes without variations, such as Booleans and Binaries, they
+are represented by just their datatype. Do note that internally the longhand
+syntax is used.</p><p>Here you can find the name of each table:</p><table><thead><tr><th style="text-align: left;">Type</th><th style="text-align: left;">Name</th><th style="text-align: left;">Example Atom</th></tr></thead><tbody><tr><td style="text-align: left;">Booleans</td><td style="text-align: left;">N/A</td><td style="text-align: left;"><code class="inline">bool</code></td></tr><tr><td style="text-align: left;">Signed Integer</td><td style="text-align: left;"><code class="inline">s [...]
+<code class="inline">arrow_short_*()</code> types.</p><h3 id="module-longhand-syntax" class="section-heading"><a href="#module-longhand-syntax" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i></a><span class="text">Longhand Syntax</span></h3><p>In longhand syntax, you use a 2 tuple to to refer to the type, such that the
+tuple is <code class="inline">{Name, Size}</code>. Thus, <code class="inline">Int 8</code> would be represented as <code class="inline">{s, 8}</code>. Do
+note that in the case or Booleans and Binaries their <code class="inline">Size</code> is <code class="inline">undefined</code>, as
+the have variable or undefined size.</p><p>Types that are longhand are under the <a href="#t:arrow_longhand_type/0"><code class="inline">arrow_longhand_type/0</code></a> and
+<code class="inline">arrow_long_*()</code> types.</p><h3 id="module-nested-types" class="section-heading"><a href="#module-nested-types" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i></a><span class="text">Nested Types</span></h3><p>A Nested Type is any data structure that supports nesting. This can include
+Lists, FixedLists, Maps, Structs and more, but is curently limited to
+FixedLists. Nested Types are represented using a 3 tuple: <code class="inline">{NestedType, Type, Length}</code>. <code class="inline">NestedType</code> refers to the data structure that is nesting your
+primitive type. <code class="inline">Type</code> refers to the type that is being nested in the data
+structure. Do note that <code class="inline">Type</code> can be a Primitive Type, or another Nested
+Type. Both the shorthand and the longhand syntax can be used or Primitive
+Types.<code class="inline">Length</code> refers to the length of each element, and will only be
+required to represent FixedLists.</p><p>It is important to remember while nesting that the type refers to the type of
+each element in an array. A list of <code class="inline">Int8</code> is 2 dimensional, and a list of
+<code class="inline">List<Int8></code> is 3 dimensional.</p><h2 id="module-native-type" class="section-heading"><a href="#module-native-type" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i></a><span class="text">Native Type</span></h2><p>A Native Type is any Erlang Datatype that can be serialized by <code class="inline">arrow</code>,
+and is represented by the type <a href="#t:native_type/0"><code class="inline">native_type/0</code></a>. It currently only includes
+values that are primitive in nature such as booleans, integers, floats,
+binaries, and additionally the atoms <code class="inline">undefined</code> and <code class="inline">nil</code> to represent a
+<code class="inline">NULL</code> value.</p>
+ </section>
+
+</div>
+
+ <section id="summary" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#summary">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Summary</span>
+ </h1>
+<div class="summary-types summary">
+ <h2>
+ <a href="#types">Types</a>
+ </h2>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:arrow_bin/0" data-no-tooltip="" translate="no">arrow_bin()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:arrow_bool/0" data-no-tooltip="" translate="no">arrow_bool()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:arrow_float/0" data-no-tooltip="" translate="no">arrow_float()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:arrow_int/0" data-no-tooltip="" translate="no">arrow_int()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:arrow_long_bin/0" data-no-tooltip="" translate="no">arrow_long_bin()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:arrow_long_bool/0" data-no-tooltip="" translate="no">arrow_long_bool()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:arrow_long_float/0" data-no-tooltip="" translate="no">arrow_long_float()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:arrow_long_int/0" data-no-tooltip="" translate="no">arrow_long_int()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:arrow_long_nested_type/0" data-no-tooltip="" translate="no">arrow_long_nested_type()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:arrow_long_uint/0" data-no-tooltip="" translate="no">arrow_long_uint()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:arrow_longhand_type/0" data-no-tooltip="" translate="no">arrow_longhand_type()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:arrow_nested_type/0" data-no-tooltip="" translate="no">arrow_nested_type()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:arrow_primitive_type/0" data-no-tooltip="" translate="no">arrow_primitive_type()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:arrow_short_bin/0" data-no-tooltip="" translate="no">arrow_short_bin()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:arrow_short_bool/0" data-no-tooltip="" translate="no">arrow_short_bool()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:arrow_short_float/0" data-no-tooltip="" translate="no">arrow_short_float()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:arrow_short_int/0" data-no-tooltip="" translate="no">arrow_short_int()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:arrow_short_nested_type/0" data-no-tooltip="" translate="no">arrow_short_nested_type()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:arrow_short_uint/0" data-no-tooltip="" translate="no">arrow_short_uint()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:arrow_shorthand_type/0" data-no-tooltip="" translate="no">arrow_shorthand_type()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:arrow_type/0" data-no-tooltip="" translate="no">arrow_type()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:arrow_uint/0" data-no-tooltip="" translate="no">arrow_uint()</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#t:native_type/0" data-no-tooltip="" translate="no">native_type()</a>
+
+ </div>
+
+ </div>
+
+</div>
+<div class="summary-functions summary">
+ <h2>
+ <a href="#functions">Functions</a>
+ </h2>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#bit_length/1" data-no-tooltip="" translate="no">bit_length(Type)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Returns the size of the type in bits.</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#byte_length/1" data-no-tooltip="" translate="no">byte_length(Type)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Returns the size of the type in bytes.</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#normalize/1" data-no-tooltip="" translate="no">normalize(Type)</a>
+
+ </div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#serialize/2" data-no-tooltip="" translate="no">serialize(Value, Type)</a>
+
+ </div>
+
+ </div>
+
+</div>
+
+ </section>
+
+
+ <section id="types" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#types">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Types</span>
+ </h1>
+ <div class="types-list">
+<section class="detail" id="t:arrow_bin/0">
+
+ <div class="detail-header">
+ <a href="#t:arrow_bin/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">arrow_bin()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L240" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> arrow_bin() :: <a href="#t:arrow_long_bin/0">arrow_long_bin</a>() | <a href="#t:arrow_short_bin/0">arrow_short_bin</a>().</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:arrow_bool/0">
+
+ <div class="detail-header">
+ <a href="#t:arrow_bool/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">arrow_bool()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L179" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> arrow_bool() :: <a href="#t:arrow_long_bool/0">arrow_long_bool</a>() | <a href="#t:arrow_short_bool/0">arrow_short_bool</a>().</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:arrow_float/0">
+
+ <div class="detail-header">
+ <a href="#t:arrow_float/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">arrow_float()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L224" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> arrow_float() :: <a href="#t:arrow_long_float/0">arrow_long_float</a>() | <a href="#t:arrow_short_float/0">arrow_short_float</a>().</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:arrow_int/0">
+
+ <div class="detail-header">
+ <a href="#t:arrow_int/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">arrow_int()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L192" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> arrow_int() :: <a href="#t:arrow_long_int/0">arrow_long_int</a>() | <a href="#t:arrow_short_int/0">arrow_short_int</a>().</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:arrow_long_bin/0">
+
+ <div class="detail-header">
+ <a href="#t:arrow_long_bin/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">arrow_long_bin()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L243" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> arrow_long_bin() :: {bin, undefined}.</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:arrow_long_bool/0">
+
+ <div class="detail-header">
+ <a href="#t:arrow_long_bool/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">arrow_long_bool()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L182" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> arrow_long_bool() :: {bool, undefined}.</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:arrow_long_float/0">
+
+ <div class="detail-header">
+ <a href="#t:arrow_long_float/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">arrow_long_float()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L228" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> arrow_long_float() :: {f, 16} | {f, 32} | {f, 64}.</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:arrow_long_int/0">
+
+ <div class="detail-header">
+ <a href="#t:arrow_long_int/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">arrow_long_int()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L196" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> arrow_long_int() :: {s, 8} | {s, 16} | {s, 32} | {s, 64}.</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:arrow_long_nested_type/0">
+
+ <div class="detail-header">
+ <a href="#t:arrow_long_nested_type/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">arrow_long_nested_type()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L261" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> arrow_long_nested_type() ::
+ {fixed_list, <a href="#t:arrow_long_nested_type/0">arrow_long_nested_type</a>() | <a href="#t:arrow_longhand_type/0">arrow_longhand_type</a>(), <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:pos_integer/0">pos_integer</a>()} |
+ {variable_list, <a href="#t:arrow_long_nested_type/0">arrow_long_nested_type</a>() | <a href="#t:arrow_longhand_type/0">arrow_longhand_type</a>(), undefined}.</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:arrow_long_uint/0">
+
+ <div class="detail-header">
+ <a href="#t:arrow_long_uint/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">arrow_long_uint()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L212" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> arrow_long_uint() :: {u, 8} | {u, 16} | {u, 32} | {u, 64}.</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:arrow_longhand_type/0">
+
+ <div class="detail-header">
+ <a href="#t:arrow_longhand_type/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">arrow_longhand_type()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L157" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> arrow_longhand_type() ::
+ <a href="#t:arrow_long_bool/0">arrow_long_bool</a>() |
+ <a href="#t:arrow_long_int/0">arrow_long_int</a>() |
+ <a href="#t:arrow_long_uint/0">arrow_long_uint</a>() |
+ <a href="#t:arrow_long_float/0">arrow_long_float</a>() |
+ <a href="#t:arrow_long_bin/0">arrow_long_bin</a>() |
+ <a href="#t:arrow_long_nested_type/0">arrow_long_nested_type</a>().</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:arrow_nested_type/0">
+
+ <div class="detail-header">
+ <a href="#t:arrow_nested_type/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">arrow_nested_type()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L253" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> arrow_nested_type() :: <a href="#t:arrow_short_nested_type/0">arrow_short_nested_type</a>() | <a href="#t:arrow_long_nested_type/0">arrow_long_nested_type</a>().</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:arrow_primitive_type/0">
+
+ <div class="detail-header">
+ <a href="#t:arrow_primitive_type/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">arrow_primitive_type()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L149" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> arrow_primitive_type() :: <a href="#t:arrow_bool/0">arrow_bool</a>() | <a href="#t:arrow_int/0">arrow_int</a>() | <a href="#t:arrow_uint/0">arrow_uint</a>() | <a href="#t:arrow_float/0">arrow_float</a>() | <a href="#t:arrow_bin/0">arrow_bin</a>().</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:arrow_short_bin/0">
+
+ <div class="detail-header">
+ <a href="#t:arrow_short_bin/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">arrow_short_bin()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L246" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> arrow_short_bin() :: bin.</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:arrow_short_bool/0">
+
+ <div class="detail-header">
+ <a href="#t:arrow_short_bool/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">arrow_short_bool()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L185" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> arrow_short_bool() :: bool.</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:arrow_short_float/0">
+
+ <div class="detail-header">
+ <a href="#t:arrow_short_float/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">arrow_short_float()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L232" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> arrow_short_float() :: f16 | f32 | f64.</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:arrow_short_int/0">
+
+ <div class="detail-header">
+ <a href="#t:arrow_short_int/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">arrow_short_int()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L200" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> arrow_short_int() :: s8 | s16 | s32 | s64.</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:arrow_short_nested_type/0">
+
+ <div class="detail-header">
+ <a href="#t:arrow_short_nested_type/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">arrow_short_nested_type()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L256" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> arrow_short_nested_type() ::
+ {fixed_list, <a href="#t:arrow_short_nested_type/0">arrow_short_nested_type</a>() | <a href="#t:arrow_shorthand_type/0">arrow_shorthand_type</a>(), <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:pos_integer/0">pos_integer</a>()} |
+ {variable_list, <a href="#t:arrow_short_nested_type/0">arrow_short_nested_type</a>() | <a href="#t:arrow_shorthand_type/0">arrow_shorthand_type</a>(), undefined}.</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:arrow_short_uint/0">
+
+ <div class="detail-header">
+ <a href="#t:arrow_short_uint/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">arrow_short_uint()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L216" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> arrow_short_uint() :: u8 | u16 | u32 | u64.</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:arrow_shorthand_type/0">
+
+ <div class="detail-header">
+ <a href="#t:arrow_shorthand_type/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">arrow_shorthand_type()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L166" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> arrow_shorthand_type() ::
+ <a href="#t:arrow_short_bool/0">arrow_short_bool</a>() |
+ <a href="#t:arrow_short_int/0">arrow_short_int</a>() |
+ <a href="#t:arrow_short_uint/0">arrow_short_uint</a>() |
+ <a href="#t:arrow_short_float/0">arrow_short_float</a>() |
+ <a href="#t:arrow_short_bin/0">arrow_short_bin</a>() |
+ <a href="#t:arrow_short_nested_type/0">arrow_short_nested_type</a>().</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:arrow_type/0">
+
+ <div class="detail-header">
+ <a href="#t:arrow_type/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">arrow_type()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L146" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> arrow_type() :: <a href="#t:arrow_primitive_type/0">arrow_primitive_type</a>() | <a href="#t:arrow_nested_type/0">arrow_nested_type</a>().</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:arrow_uint/0">
+
+ <div class="detail-header">
+ <a href="#t:arrow_uint/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">arrow_uint()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L208" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> arrow_uint() :: <a href="#t:arrow_long_uint/0">arrow_long_uint</a>() | <a href="#t:arrow_short_uint/0">arrow_short_uint</a>().</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="t:native_type/0">
+
+ <div class="detail-header">
+ <a href="#t:native_type/0" class="detail-link" data-no-tooltip="" aria-label="Link to this type">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">native_type()</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L270" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-type</span> native_type() :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:boolean/0">boolean</a>() | undefined | nil | <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:integer/0">integer</a>() | <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:float/0">float</a>() | <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:binary/0">binary</a>().</pre>
+
+ </div>
+
+
+ </section>
+</section>
+
+ </div>
+ </section>
+
+ <section id="functions" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#functions">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Functions</span>
+ </h1>
+ <div class="functions-list">
+<section class="detail" id="bit_length/1">
+
+ <div class="detail-header">
+ <a href="#bit_length/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">bit_length(Type)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L331" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> bit_length(Type :: <a href="#t:arrow_type/0">arrow_type</a>()) -> Length :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:pos_integer/0">pos_integer</a>() | undefined.</pre>
+
+ </div>
+
+<p>Returns the size of the type in bits.</p>
+ </section>
+</section>
+<section class="detail" id="byte_length/1">
+
+ <div class="detail-header">
+ <a href="#byte_length/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">byte_length(Type)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L346" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> byte_length(Type :: <a href="#t:arrow_type/0">arrow_type</a>()) -> Length :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:pos_integer/0">pos_integer</a>() | undefined.</pre>
+
+ </div>
+
+<p>Returns the size of the type in bytes.</p>
+ </section>
+</section>
+<section class="detail" id="normalize/1">
+
+ <div class="detail-header">
+ <a href="#normalize/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">normalize(Type)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L291" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> normalize(Type :: <a href="#t:arrow_type/0">arrow_type</a>()) -> <a href="#t:arrow_longhand_type/0">arrow_longhand_type</a>().</pre>
+
+ </div>
+
+
+ </section>
+</section>
+<section class="detail" id="serialize/2">
+
+ <div class="detail-header">
+ <a href="#serialize/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">serialize(Value, Type)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_type.erl#L360" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> serialize(Value :: <a href="#t:native_type/0">native_type</a>(), Type :: <a href="#t:arrow_longhand_type/0">arrow_longhand_type</a>()) -> <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:binary/0">binary</a>().</pre>
+
+ </div>
+
+
+ </section>
+</section>
+
+ </div>
+ </section>
+
+ <footer class="footer">
+ <p>
+
+ <span class="line">
+ <a href="https://hex.pm/packages/arrow/0.1.0" class="footer-hex-package">Hex Package</a>
+
+ <a href="https://preview.hex.pm/preview/arrow/0.1.0">Hex Preview</a>
+
+ </span>
+
+ <span class="line">
+ <button class="a-main footer-button display-quick-switch" title="Search HexDocs packages">
+ Search HexDocs
+ </button>
+
+ <a href="arrow.epub" title="ePub version">
+ Download ePub version
+ </a>
+
+ </span>
+ </p>
+
+ <p class="built-using">
+ Built using
+ <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.38.2) for the
+
+ <a href="https://erlang.org" title="Erlang" target="_blank" translate="no">Erlang programming language</a>
+
+ </p>
+
+ </footer>
+ </div>
+</main>
+</div>
+
+ </body>
+</html>
diff --git a/main/arrow_variable_binary_array.html b/main/arrow_variable_binary_array.html
new file mode 100644
index 0000000..0fc4116
--- /dev/null
+++ b/main/arrow_variable_binary_array.html
@@ -0,0 +1,243 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="generator" content="ExDoc v0.38.2">
+ <meta name="project" content="arrow v0.1.0">
+
+
+ <title>arrow_variable_binary_array — arrow v0.1.0</title>
+
+ <link rel="stylesheet" href="dist/html-erlang-DQDXQC7W.css" />
+
+ <script defer src="dist/sidebar_items-DDBC4286.js"></script>
+ <script defer src="docs_config.js"></script>
+ <script defer src="dist/html-DPJLHKSM.js"></script>
+
+ </head>
+ <body>
+ <script>(()=>{var t="ex_doc:settings",e="dark";var o="dark",s="light";var E="sidebar_state",n="closed";var r="sidebar_width";var a="sidebar-open";var i=new URLSearchParams(window.location.search),S=i.get("theme")||JSON.parse(localStorage.getItem(t)||"{}").theme;(S===o||S!==s&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&document.body.classList.add(e);var d=sessionStorage.getItem(E),A=d!==n&&!window.matchMedia(`screen and (max-width: ${768}px)`).matches;document.body.cl [...]
+</script>
+
+<div class="body-wrapper">
+
+<button id="sidebar-menu" class="sidebar-button sidebar-toggle" aria-label="toggle sidebar" aria-controls="sidebar">
+ <i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i>
+</button>
+
+<nav id="sidebar" class="sidebar">
+
+ <div class="sidebar-header">
+ <div class="sidebar-projectInfo">
+
+ <div>
+ <a href="https://github.com/apache/arrow-erlang" class="sidebar-projectName" translate="no">
+arrow
+ </a>
+ <div class="sidebar-projectVersion" translate="no">
+ v0.1.0
+ </div>
+ </div>
+ </div>
+ <ul id="sidebar-list-nav" class="sidebar-list-nav" role="tablist" data-extras=""></ul>
+ </div>
+</nav>
+
+<output role="status" id="toast"></output>
+
+<main class="content page-module" id="main" data-type="modules">
+ <div id="content" class="content-inner">
+ <div class="top-search">
+ <div class="search-settings">
+ <form class="search-bar" action="search.html">
+ <label class="search-label">
+ <span class="sr-only">Search documentation of arrow</span>
+ <input name="q" type="text" class="search-input" placeholder="Press / to search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
+ </label>
+ <button type="submit" class="search-button" aria-label="Submit Search" tabindex="-1">
+ <i class="ri-search-2-line ri-lg" aria-hidden="true"></i>
+ </button>
+ <button type="button" tabindex="-1" class="search-close-button" aria-hidden="true">
+ <i class="ri-close-line ri-lg" title="Cancel search"></i>
+ </button>
+ </form>
+ <div class="autocomplete">
+ </div>
+ <button class="icon-settings display-settings">
+ <i class="ri-settings-3-line"></i>
+ <span class="sr-only">Settings</span>
+ </button>
+ </div>
+ </div>
+
+<div id="top-content">
+ <div class="heading-with-actions top-heading">
+ <h1>
+ <span translate="no">arrow_variable_binary_array</span>
+ <small class="app-vsn" translate="no">(arrow v0.1.0)</small>
+
+ </h1>
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_variable_binary_array.erl#L18" title="View Source" class="icon-action" rel="help">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ <span class="sr-only">View Source</span>
+ </a>
+
+ </div>
+
+
+ <section id="moduledoc">
+<p>Provides support for Arrow's Variable-Sized Binary Layout.</p><p>The <a href="https://arrow.apache.org/docs/format/Columnar.html#variable-size-binary-layout">Variable-Sized Binary
+Layout</a>
+provides support for storing binaries of varying length in a way similar to the
+primitive layout, i.e. in a 1 Dimensional Array.</p>
+ </section>
+
+</div>
+
+ <section id="summary" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#summary">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Summary</span>
+ </h1>
+<div class="summary-functions summary">
+ <h2>
+ <a href="#functions">Functions</a>
+ </h2>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#from_erlang/1" data-no-tooltip="" translate="no">from_erlang(Values)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Creates a Variable-Sized Binary Array given the values</p></div>
+
+ </div>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#from_erlang/2" data-no-tooltip="" translate="no">from_erlang(Values, Opts)</a>
+
+ </div>
+
+ <div class="summary-synopsis"><p>Creates a Variable-Sized Binary Array given the values and options in the form of
+a map, from its erlang representation.</p></div>
+
+ </div>
+
+</div>
+
+ </section>
+
+
+ <section id="functions" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#functions">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Functions</span>
+ </h1>
+ <div class="functions-list">
+<section class="detail" id="from_erlang/1">
+
+ <div class="detail-header">
+ <a href="#from_erlang/1" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">from_erlang(Values)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_variable_binary_array.erl#L46" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> from_erlang(Values :: [<a href="arrow_type.html#t:native_type/0">arrow_type:native_type</a>()]) -> Array :: <a href="arrow_array.html#t:array/0">arrow_array:array</a>().</pre>
+
+ </div>
+
+<p>Creates a Variable-Sized Binary Array given the values</p>
+ </section>
+</section>
+<section class="detail" id="from_erlang/2">
+
+ <div class="detail-header">
+ <a href="#from_erlang/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">from_erlang(Values, Opts)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_variable_binary_array.erl#L39" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> from_erlang(Values :: [<a href="arrow_type.html#t:native_type/0">arrow_type:native_type</a>()], Opts :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:map/0">map</a>()) -> Array :: <a href="arrow_array.html#t:array/0">arrow_array:array</a>().</pre>
+
+ </div>
+
+<p>Creates a Variable-Sized Binary Array given the values and options in the form of
+a map, from its erlang representation.</p>
+ </section>
+</section>
+
+ </div>
+ </section>
+
+ <footer class="footer">
+ <p>
+
+ <span class="line">
+ <a href="https://hex.pm/packages/arrow/0.1.0" class="footer-hex-package">Hex Package</a>
+
+ <a href="https://preview.hex.pm/preview/arrow/0.1.0">Hex Preview</a>
+
+ </span>
+
+ <span class="line">
+ <button class="a-main footer-button display-quick-switch" title="Search HexDocs packages">
+ Search HexDocs
+ </button>
+
+ <a href="arrow.epub" title="ePub version">
+ Download ePub version
+ </a>
+
+ </span>
+ </p>
+
+ <p class="built-using">
+ Built using
+ <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.38.2) for the
+
+ <a href="https://erlang.org" title="Erlang" target="_blank" translate="no">Erlang programming language</a>
+
+ </p>
+
+ </footer>
+ </div>
+</main>
+</div>
+
+ </body>
+</html>
diff --git a/main/arrow_variable_list_array.html b/main/arrow_variable_list_array.html
new file mode 100644
index 0000000..e93ddfe
--- /dev/null
+++ b/main/arrow_variable_list_array.html
@@ -0,0 +1,207 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="generator" content="ExDoc v0.38.2">
+ <meta name="project" content="arrow v0.1.0">
+
+
+ <title>arrow_variable_list_array — arrow v0.1.0</title>
+
+ <link rel="stylesheet" href="dist/html-erlang-DQDXQC7W.css" />
+
+ <script defer src="dist/sidebar_items-DDBC4286.js"></script>
+ <script defer src="docs_config.js"></script>
+ <script defer src="dist/html-DPJLHKSM.js"></script>
+
+ </head>
+ <body>
+ <script>(()=>{var t="ex_doc:settings",e="dark";var o="dark",s="light";var E="sidebar_state",n="closed";var r="sidebar_width";var a="sidebar-open";var i=new URLSearchParams(window.location.search),S=i.get("theme")||JSON.parse(localStorage.getItem(t)||"{}").theme;(S===o||S!==s&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&document.body.classList.add(e);var d=sessionStorage.getItem(E),A=d!==n&&!window.matchMedia(`screen and (max-width: ${768}px)`).matches;document.body.cl [...]
+</script>
+
+<div class="body-wrapper">
+
+<button id="sidebar-menu" class="sidebar-button sidebar-toggle" aria-label="toggle sidebar" aria-controls="sidebar">
+ <i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i>
+</button>
+
+<nav id="sidebar" class="sidebar">
+
+ <div class="sidebar-header">
+ <div class="sidebar-projectInfo">
+
+ <div>
+ <a href="https://github.com/apache/arrow-erlang" class="sidebar-projectName" translate="no">
+arrow
+ </a>
+ <div class="sidebar-projectVersion" translate="no">
+ v0.1.0
+ </div>
+ </div>
+ </div>
+ <ul id="sidebar-list-nav" class="sidebar-list-nav" role="tablist" data-extras=""></ul>
+ </div>
+</nav>
+
+<output role="status" id="toast"></output>
+
+<main class="content page-module" id="main" data-type="modules">
+ <div id="content" class="content-inner">
+ <div class="top-search">
+ <div class="search-settings">
+ <form class="search-bar" action="search.html">
+ <label class="search-label">
+ <span class="sr-only">Search documentation of arrow</span>
+ <input name="q" type="text" class="search-input" placeholder="Press / to search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
+ </label>
+ <button type="submit" class="search-button" aria-label="Submit Search" tabindex="-1">
+ <i class="ri-search-2-line ri-lg" aria-hidden="true"></i>
+ </button>
+ <button type="button" tabindex="-1" class="search-close-button" aria-hidden="true">
+ <i class="ri-close-line ri-lg" title="Cancel search"></i>
+ </button>
+ </form>
+ <div class="autocomplete">
+ </div>
+ <button class="icon-settings display-settings">
+ <i class="ri-settings-3-line"></i>
+ <span class="sr-only">Settings</span>
+ </button>
+ </div>
+ </div>
+
+<div id="top-content">
+ <div class="heading-with-actions top-heading">
+ <h1>
+ <span translate="no">arrow_variable_list_array</span>
+ <small class="app-vsn" translate="no">(arrow v0.1.0)</small>
+
+ </h1>
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_variable_list_array.erl#L18" title="View Source" class="icon-action" rel="help">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ <span class="sr-only">View Source</span>
+ </a>
+
+ </div>
+
+
+ <section id="moduledoc">
+<p>Provides support for Arrow's Variable-Size List Layout.</p><p>This module provides support for the <a href="https://arrow.apache.org/docs/format/Columnar.html#variable-size-list-layout">Variable-Size List
+Layout</a>,
+which is an layout that supports storing a list of lists of a specific length
+and nesting.</p><h2 id="module-invalid-input" class="section-heading"><a href="#module-invalid-input" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i></a><span class="text">Invalid Input</span></h2><p>It is important that care is taken when passing input values to this
+module. For performance reasons, the input is not validated. The
+function crashes on nesting that is inconsistent: a. with the type, b.
+between elements. The behaviour on invalid input <strong>CANNOT BE
+GUARANTEED</strong>. Therefore, one must be careful to not to <strong>CRASH THE
+PROCESS</strong> or worse still, <strong>PRODUCE INVALID OUTPUT</strong>.</p><p>Any input must follow the following rules:</p><ol><li> The nesting of each element must be consistent with the type</li><li> The nesting of each element must be consistent with each other</li></ol>
+ </section>
+
+</div>
+
+ <section id="summary" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#summary">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Summary</span>
+ </h1>
+<div class="summary-functions summary">
+ <h2>
+ <a href="#functions">Functions</a>
+ </h2>
+
+ <div class="summary-row">
+ <div class="summary-signature">
+ <a href="#from_erlang/2" data-no-tooltip="" translate="no">from_erlang(Values, Type)</a>
+
+ </div>
+
+ </div>
+
+</div>
+
+ </section>
+
+
+ <section id="functions" class="details-list">
+ <h1 class="section-heading">
+ <a class="hover-link" href="#functions">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <span class="text">Functions</span>
+ </h1>
+ <div class="functions-list">
+<section class="detail" id="from_erlang/2">
+
+ <div class="detail-header">
+ <a href="#from_erlang/2" class="detail-link" data-no-tooltip="" aria-label="Link to this function">
+ <i class="ri-link-m" aria-hidden="true"></i>
+ </a>
+ <div class="heading-with-actions">
+ <h1 class="signature" translate="no">from_erlang(Values, Type)</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/src/arrow_variable_list_array.erl#L50" class="icon-action" rel="help" aria-label="View Source">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ </a>
+
+ </div>
+ </div>
+
+ <section class="docstring">
+
+ <div class="specs">
+
+ <pre translate="no"><span class="attribute">-spec</span> from_erlang(Values :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:list/0">list</a>(), Type :: <a href="https://www.erlang.org/doc/apps/erts/erlang.html#t:map/0">map</a>() | <a href="arrow_type.html#t:arrow_type/0">arrow_type:arrow_type</a>()) ->
+ Array :: <a href="arrow_array.html#t:array/0">arrow_array:array</a>().</pre>
+
+ </div>
+
+
+ </section>
+</section>
+
+ </div>
+ </section>
+
+ <footer class="footer">
+ <p>
+
+ <span class="line">
+ <a href="https://hex.pm/packages/arrow/0.1.0" class="footer-hex-package">Hex Package</a>
+
+ <a href="https://preview.hex.pm/preview/arrow/0.1.0">Hex Preview</a>
+
+ </span>
+
+ <span class="line">
+ <button class="a-main footer-button display-quick-switch" title="Search HexDocs packages">
+ Search HexDocs
+ </button>
+
+ <a href="arrow.epub" title="ePub version">
+ Download ePub version
+ </a>
+
+ </span>
+ </p>
+
+ <p class="built-using">
+ Built using
+ <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.38.2) for the
+
+ <a href="https://erlang.org" title="Erlang" target="_blank" translate="no">Erlang programming language</a>
+
+ </p>
+
+ </footer>
+ </div>
+</main>
+</div>
+
+ </body>
+</html>
diff --git a/main/dist/html-DPJLHKSM.js b/main/dist/html-DPJLHKSM.js
new file mode 100644
index 0000000..8d3e309
--- /dev/null
+++ b/main/dist/html-DPJLHKSM.js
@@ -0,0 +1,222 @@
+(()=>{var Ps=Object.create;var Kn=Object.defineProperty;var Os=Object.getOwnPropertyDescriptor;var Is=Object.getOwnPropertyNames;var As=Object.getPrototypeOf,Cs=Object.prototype.hasOwnProperty;var L=(t,e)=>()=>(e||t((e={exports:{}}).exports,e),e.exports);var Rs=(t,e,n,r)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of Is(e))!Cs.call(t,i)&&i!==n&&Kn(t,i,{get:()=>e[i],enumerable:!(r=Os(e,i))||r.enumerable});return t};var Y=(t,e,n)=>(n=t!=null?Ps(As(t)):{},Rs(e||!t||!t.__esMod [...]
+You can add a runtime option to disable the check or this warning:
+See https://handlebarsjs.com/api-reference/runtime-options.html#options-to-control-prototype-access for details`))}function aa(){Object.keys(nt).forEach(function(t){delete nt[t]})}});var an=L(j=>{"use strict";j.__esModule=!0;j.HandlebarsEnvironment=on;function ii(t){return t&&t.__esModule?t:{default:t}}var oe=F(),la=X(),rn=ii(la),ua=Xt(),ca=Zr(),da=en(),rt=ii(da),ha=nn(),fa="4.7.7";j.VERSION=fa;var pa=8;j.COMPILER_REVISION=pa;var ma=7;j.LAST_COMPATIBLE_COMPILER_REVISION=ma;var ga={1:"<= [...]
+`),h=0,p=d.length;h<p&&!(!d[h]&&h+1===p);h++)d[h]=l.indent+d[h];c=d.join(`
+`)}return c}else throw new G.default("The partial "+l.name+" could not be compiled when running in runtime-only mode")}var i={strict:function(a,l,u){if(!a||!(l in a))throw new G.default('"'+l+'" not defined in '+a,{loc:u});return i.lookupProperty(a,l)},lookupProperty:function(a,l){var u=a[l];if(u==null||Object.prototype.hasOwnProperty.call(a,l)||ui.resultIsAllowed(u,i.protoAccessControl,l))return u},lookup:function(a,l){for(var u=a.length,c=0;c<u;c++){var d=a[c]&&i.lookupProperty(a[c],l) [...]
+`,e)},t.Pipeline.load=function(e){var n=new t.Pipeline;return e.forEach(function(r){var i=t.Pipeline.registeredFunctions[r];if(i)n.add(i);else throw new Error("Cannot load unregistered function: "+r)}),n},t.Pipeline.prototype.add=function(){var e=Array.prototype.slice.call(arguments);e.forEach(function(n){t.Pipeline.warnIfFunctionNotRegistered(n),this._stack.push(n)},this)},t.Pipeline.prototype.after=function(e,n){t.Pipeline.warnIfFunctionNotRegistered(n);var r=this._stack.indexOf(e);if( [...]
+ `+c((o=(o=d(n,"version")||(e!=null?d(e,"version"):e))!=null?o:l,typeof o===u?o.call(a,{name:"version",hash:{},data:i,loc:{start:{line:8,column:10},end:{line:8,column:21}}}):o))+`
+ </option>
+`},2:function(t,e,n,r,i){return" selected disabled"},4:function(t,e,n,r,i){var s,o=t.lookupProperty||function(a,l){if(Object.prototype.hasOwnProperty.call(a,l))return a[l]};return` <div class="sidebar-staleVersion">
+ <a href="`+t.escapeExpression((s=(s=o(n,"latestVersion")||(e!=null?o(e,"latestVersion"):e))!=null?s:t.hooks.helperMissing,typeof s=="function"?s.call(e??(t.nullContext||{}),{name:"latestVersion",hash:{},data:i,loc:{start:{line:15,column:15},end:{line:15,column:32}}}):s))+`" title="This version of package is not the latest version">
+ <i class="ri-alert-line sidebar-staleIcon" aria-hidden="true"></i><span>Go to latest</span>
+ </a>
+ </div>
+`},compiler:[8,">= 4.3.0"],main:function(t,e,n,r,i){var s,o=e??(t.nullContext||{}),a=t.lookupProperty||function(l,u){if(Object.prototype.hasOwnProperty.call(l,u))return l[u]};return`<form autocomplete="off">
+ <label>
+ <span class="sidebar-projectVersionsCaret" aria-hidden="true">▼</span>
+ <span class="sr-only">Project version</span>
+ <select>
+`+((s=a(n,"each").call(o,e!=null?a(e,"nodes"):e,{name:"each",hash:{},fn:t.program(1,i,0),inverse:t.noop,data:i,loc:{start:{line:6,column:6},end:{line:10,column:15}}}))!=null?s:"")+` </select>
+ </label>
+`+((s=a(n,"if").call(o,e!=null?a(e,"latestVersion"):e,{name:"if",hash:{},fn:t.program(4,i,0),inverse:t.noop,data:i,loc:{start:{line:13,column:2},end:{line:19,column:9}}}))!=null?s:"")+`</form>
+`},useData:!0});var qa=".sidebar-projectVersion",Ei=".sidebar-projectVersion select",Fa=".sidebar-staleVersion a";if(!A){let t=Xn(),e=f(qa);if(t.length>0||!e){let n=e.textContent.trim(),i=(t.some(u=>u.version===n)?t:[{version:n,url:"#"},...t]).map(u=>({...u,isCurrentVersion:u.version===n})),s=t.find(u=>u.latest),o=s?.version!==n&&!n.includes("-")?s?.url:null;e.innerHTML=bi({nodes:i,latestVersion:o});let a=f(Ei);a.addEventListener("change",$a),Va(a);let l=f(Fa);l&&l.addEventListener("clic [...]
+ <div class="title">
+`+((s=d(n,"if").call(a,e!=null?d(e,"deprecated"):e,{name:"if",hash:{},fn:t.program(2,i,0),inverse:t.program(4,i,0),data:i,loc:{start:{line:16,column:10},end:{line:20,column:17}}}))!=null?s:"")+`
+`+((s=d(n,"each").call(a,e!=null?d(e,"labels"):e,{name:"each",hash:{},fn:t.program(6,i,0),inverse:t.noop,data:i,loc:{start:{line:22,column:10},end:{line:24,column:19}}}))!=null?s:"")+` <div class="autocomplete-preview-indicator autocomplete-preview-indicator-open">
+ <button onclick="onTogglePreviewClick(event, false)" title="Close preview" tabindex="-1">
+ <i class="ri-close-line" aria-hidden="true"></i>
+ Close preview
+ </button>
+ </div>
+ <div class="autocomplete-preview-indicator autocomplete-preview-indicator-closed">
+ <button onclick="onTogglePreviewClick(event, true)" title="Open preview" tabindex="-1">
+ <i class="ri-search-2-line" aria-hidden="true"></i>
+ Open preview
+ </button>
+ </div>
+ </div>
+
+`+((s=d(n,"if").call(a,e!=null?d(e,"description"):e,{name:"if",hash:{},fn:t.program(8,i,0),inverse:t.noop,data:i,loc:{start:{line:39,column:8},end:{line:43,column:15}}}))!=null?s:"")+` </a>
+`},2:function(t,e,n,r,i){var s,o,a=t.lookupProperty||function(l,u){if(Object.prototype.hasOwnProperty.call(l,u))return l[u]};return' <s><span class="header" translate="no">'+((s=(o=(o=a(n,"title")||(e!=null?a(e,"title"):e))!=null?o:t.hooks.helperMissing,typeof o=="function"?o.call(e??(t.nullContext||{}),{name:"title",hash:{},data:i,loc:{start:{line:17,column:49},end:{line:17,column:60}}}):o))!=null?s:"")+`</span></s>
+`},4:function(t,e,n,r,i){var s,o,a=t.lookupProperty||function(l,u){if(Object.prototype.hasOwnProperty.call(l,u))return l[u]};return' <span class="header" translate="no">'+((s=(o=(o=a(n,"title")||(e!=null?a(e,"title"):e))!=null?o:t.hooks.helperMissing,typeof o=="function"?o.call(e??(t.nullContext||{}),{name:"title",hash:{},data:i,loc:{start:{line:19,column:46},end:{line:19,column:57}}}):o))!=null?s:"")+`</span>
+`},6:function(t,e,n,r,i){return' <span class="label">'+t.escapeExpression(t.lambda(e,e))+`</span>
+`},8:function(t,e,n,r,i){var s,o,a=t.lookupProperty||function(l,u){if(Object.prototype.hasOwnProperty.call(l,u))return l[u]};return` <div class="description" translate="no">
+ `+((s=(o=(o=a(n,"description")||(e!=null?a(e,"description"):e))!=null?o:t.hooks.helperMissing,typeof o=="function"?o.call(e??(t.nullContext||{}),{name:"description",hash:{},data:i,loc:{start:{line:41,column:10},end:{line:41,column:27}}}):o))!=null?s:"")+`
+ </div>
+`},compiler:[8,">= 4.3.0"],main:function(t,e,n,r,i){var s,o,a=e??(t.nullContext||{}),l=t.lookupProperty||function(u,c){if(Object.prototype.hasOwnProperty.call(u,c))return u[c]};return`<div class="triangle"></div>
+<div class="autocomplete-container">
+ <div class="autocomplete-suggestions">
+ <div class="autocomplete-results">
+ <span class="query">
+ Autocompletion results for <span class="bold">"`+t.escapeExpression((o=(o=l(n,"term")||(e!=null?l(e,"term"):e))!=null?o:t.hooks.helperMissing,typeof o=="function"?o.call(a,{name:"term",hash:{},data:i,loc:{start:{line:6,column:55},end:{line:6,column:63}}}):o))+`"</span>
+ </span>
+ <span class="press-return">
+ Press <span class="bold">RETURN</span> for full-text search, <span class="bold">TAB</span> for previews
+ </span>
+ </div>
+ <div>
+`+((s=l(n,"each").call(a,e!=null?l(e,"suggestions"):e,{name:"each",hash:{},fn:t.program(1,i,0),inverse:t.noop,data:i,loc:{start:{line:13,column:6},end:{line:45,column:15}}}))!=null?s:"")+` </div>
+ </div>
+</div>
+`},useData:!0});var pe=".autocomplete",pt=".autocomplete-suggestions",ft=".autocomplete-suggestion",C={autocompleteSuggestions:[],previewOpen:!1,selectedIdx:-1};function dl(){f(pe).classList.add("shown")}function vn(){f(pe).classList.remove("shown")}function Ai(){return f(pe).classList.contains("shown")}function yn(t){C.autocompleteSuggestions=Ti(t),C.selectedIdx=-1,he(t)?vn():(hl({term:t,suggestions:C.autocompleteSuggestions}),mt(0),dl())}function hl({term:t,suggestions:e}){let n=Ii({su [...]
+ `+t.escapeExpression(t.lambda((s=e!=null?o(e,"hint"):e)!=null?o(s,"description"):s,e))+`
+ </section>
+`},3:function(t,e,n,r,i){var s,o=t.lambda,a=t.escapeExpression,l=t.lookupProperty||function(u,c){if(Object.prototype.hasOwnProperty.call(u,c))return u[c]};return` <div class="detail-header">
+ <h1 class="signature">
+ <span translate="no">`+a(o((s=e!=null?l(e,"hint"):e)!=null?l(s,"title"):s,e))+`</span>
+ <div class="version-info" translate="no">`+a(o((s=e!=null?l(e,"hint"):e)!=null?l(s,"version"):s,e))+`</div>
+ </h1>
+ </div>
+`+((s=l(n,"if").call(e??(t.nullContext||{}),(s=e!=null?l(e,"hint"):e)!=null?l(s,"description"):s,{name:"if",hash:{},fn:t.program(4,i,0),inverse:t.noop,data:i,loc:{start:{line:12,column:2},end:{line:16,column:9}}}))!=null?s:"")},4:function(t,e,n,r,i){var s,o=t.lookupProperty||function(a,l){if(Object.prototype.hasOwnProperty.call(a,l))return a[l]};return` <section class="docstring">
+ `+((s=t.lambda((s=e!=null?o(e,"hint"):e)!=null?o(s,"description"):s,e))!=null?s:"")+`
+ </section>
+`},compiler:[8,">= 4.3.0"],main:function(t,e,n,r,i){var s,o=t.lookupProperty||function(a,l){if(Object.prototype.hasOwnProperty.call(a,l))return a[l]};return(s=o(n,"if").call(e??(t.nullContext||{}),e!=null?o(e,"isPlain"):e,{name:"if",hash:{},fn:t.program(1,i,0),inverse:t.program(3,i,0),data:i,loc:{start:{line:1,column:0},end:{line:17,column:7}}}))!=null?s:""},useData:!0});var vl='<div class="tooltip"><div class="tooltip-body"></div></div>',yl='.content a:not([data-no-tooltip=""])',kn=".to [...]
+`},3:function(t,e,n,r,i){return` Invalid search
+`},5:function(t,e,n,r,i){var s,o=t.lookupProperty||function(a,l){if(Object.prototype.hasOwnProperty.call(a,l))return a[l]};return(s=o(n,"each").call(e??(t.nullContext||{}),e!=null?o(e,"results"):e,{name:"each",hash:{},fn:t.program(6,i,0),inverse:t.noop,data:i,loc:{start:{line:10,column:2},end:{line:21,column:11}}}))!=null?s:""},6:function(t,e,n,r,i){var s,o=t.lambda,a=t.escapeExpression,l=t.lookupProperty||function(u,c){if(Object.prototype.hasOwnProperty.call(u,c))return u[c]};return` [...]
+ <h2 class="result-id">
+ <a href="`+a(o(e!=null?l(e,"ref"):e,e))+`">
+ <span translate="no">`+a(o(e!=null?l(e,"title"):e,e))+"</span> <small>("+a(o(e!=null?l(e,"type"):e,e))+`)</small>
+ </a>
+ </h2>
+`+((s=l(n,"each").call(e??(t.nullContext||{}),e!=null?l(e,"excerpts"):e,{name:"each",hash:{},fn:t.program(7,i,0),inverse:t.noop,data:i,loc:{start:{line:17,column:8},end:{line:19,column:17}}}))!=null?s:"")+` </div>
+`},7:function(t,e,n,r,i){var s;return' <p class="result-elem">'+((s=t.lambda(e,e))!=null?s:"")+`</p>
+`},9:function(t,e,n,r,i){var s,o=t.lookupProperty||function(a,l){if(Object.prototype.hasOwnProperty.call(a,l))return a[l]};return((s=(o(n,"isArray")||e&&o(e,"isArray")||t.hooks.helperMissing).call(e??(t.nullContext||{}),e!=null?o(e,"results"):e,{name:"isArray",hash:{},fn:t.program(10,i,0),inverse:t.program(12,i,0),data:i,loc:{start:{line:23,column:2},end:{line:29,column:14}}}))!=null?s:"")+`
+ <p>The search functionality is full-text based. Here are some tips:</p>
+
+ <ul>
+ <li>Multiple words (such as <code>foo bar</code>) are searched as <code>OR</code></li>
+ <li>Use <code>*</code> anywhere (such as <code>fo*</code>) as wildcard</li>
+ <li>Use <code>+</code> before a word (such as <code>+foo</code>) to make its presence required</li>
+ <li>Use <code>-</code> before a word (such as <code>-foo</code>) to make its absence required</li>
+ <li>Use <code>:</code> to search on a particular field (such as <code>field:word</code>). The available fields are <code>title</code>, <code>doc</code> and <code>type</code></li>
+ <li>Use <code>WORD^NUMBER</code> (such as <code>foo^2</code>) to boost the given word</li>
+ <li>Use <code>WORD~NUMBER</code> (such as <code>foo~2</code>) to do a search with edit distance on word</li>
+ </ul>
+
+ <p>To quickly go to a module, type, or function, use the autocompletion feature in the sidebar search.</p>
+`},10:function(t,e,n,r,i){var s,o=t.lookupProperty||function(a,l){if(Object.prototype.hasOwnProperty.call(a,l))return a[l]};return" <p>Sorry, we couldn't find anything for <em>"+t.escapeExpression((s=(s=o(n,"value")||(e!=null?o(e,"value"):e))!=null?s:t.hooks.helperMissing,typeof s=="function"?s.call(e??(t.nullContext||{}),{name:"value",hash:{},data:i,loc:{start:{line:24,column:48},end:{line:24,column:57}}}):s))+`</em>.</p>
+`},12:function(t,e,n,r,i){var s,o=t.lookupProperty||function(a,l){if(Object.prototype.hasOwnProperty.call(a,l))return a[l]};return(s=o(n,"if").call(e??(t.nullContext||{}),e!=null?o(e,"value"):e,{name:"if",hash:{},fn:t.program(13,i,0),inverse:t.program(15,i,0),data:i,loc:{start:{line:25,column:2},end:{line:29,column:2}}}))!=null?s:""},13:function(t,e,n,r,i){var s,o=t.lookupProperty||function(a,l){if(Object.prototype.hasOwnProperty.call(a,l))return a[l]};return" <p>Invalid search: "+t.e [...]
+`},15:function(t,e,n,r,i){return` <p>Please type something into the search bar to perform a search.</p>
+ `},compiler:[8,">= 4.3.0"],main:function(t,e,n,r,i){var s,o=e??(t.nullContext||{}),a=t.lookupProperty||function(l,u){if(Object.prototype.hasOwnProperty.call(l,u))return l[u]};return`<h1>
+`+((s=a(n,"if").call(o,e!=null?a(e,"value"):e,{name:"if",hash:{},fn:t.program(1,i,0),inverse:t.program(3,i,0),data:i,loc:{start:{line:2,column:2},end:{line:6,column:9}}}))!=null?s:"")+`</h1>
+
+`+((s=(a(n,"isNonEmptyArray")||e&&a(e,"isNonEmptyArray")||t.hooks.helperMissing).call(o,e!=null?a(e,"results"):e,{name:"isNonEmptyArray",hash:{},fn:t.program(5,i,0),inverse:t.program(9,i,0),data:i,loc:{start:{line:9,column:0},end:{line:44,column:20}}}))!=null?s:"")},useData:!0});var wt=80,Rl="#search";V.default.tokenizer.separator=/\s+/;V.default.QueryLexer.termSeparator=/\s+/;V.default.Pipeline.registerFunction(Xi,"docTokenSplitter");V.default.Pipeline.registerFunction(Zi,"docTrimmer"); [...]
+ <dd class="shortcut-description">
+ `+t.escapeExpression(t.lambda(e!=null?o(e,"description"):e,e))+`
+ </dd>
+ <dt class="shortcut-keys">
+`+((s=o(n,"if").call(e??(t.nullContext||{}),e!=null?o(e,"displayAs"):e,{name:"if",hash:{},fn:t.program(3,i,0),inverse:t.program(5,i,0),data:i,loc:{start:{line:46,column:12},end:{line:50,column:19}}}))!=null?s:"")+` </dt>
+ </dl>
+`},3:function(t,e,n,r,i){var s,o=t.lookupProperty||function(a,l){if(Object.prototype.hasOwnProperty.call(a,l))return a[l]};return" "+((s=t.lambda(e!=null?o(e,"displayAs"):e,e))!=null?s:"")+`
+`},5:function(t,e,n,r,i){var s=t.lookupProperty||function(o,a){if(Object.prototype.hasOwnProperty.call(o,a))return o[a]};return" <kbd><kbd>"+t.escapeExpression(t.lambda(e!=null?s(e,"key"):e,e))+`</kbd></kbd>
+`},compiler:[8,">= 4.3.0"],main:function(t,e,n,r,i){var s,o=t.lookupProperty||function(a,l){if(Object.prototype.hasOwnProperty.call(a,l))return a[l]};return`<div id="settings-modal-content">
+ <div id="settings-content">
+ <label class="switch-button-container">
+ <div>
+ <span>Theme</span>
+ <p>Use the documentation UI in a theme.</p>
+ </div>
+ <div>
+ <select name="theme" class="settings-select">
+ <option value="dark">Dark</option>
+ <option value="light">Light</option>
+ <option value="system">System</option>
+ </select>
+ </div>
+ </label>
+ <label class="switch-button-container">
+ <div>
+ <span>Show tooltips</span>
+ <p>Show tooltips when mousing over code references.</p>
+ </div>
+ <div class="switch-button">
+ <input class="switch-button__checkbox" type="checkbox" name="tooltips" />
+ <div class="switch-button__bg"></div>
+ </div>
+ </label>
+ <label class="switch-button-container">
+ <div>
+ <span>Run in Livebook</span>
+ <p>Use Direct Address for \u201CRun in Livebook\u201D badges.</p>
+ </div>
+ <div class="switch-button">
+ <input class="switch-button__checkbox" type="checkbox" name="direct_livebook_url" />
+ <div class="switch-button__bg"></div>
+ </div>
+ </label>
+ <input class="input" type="url" name="livebook_url" placeholder="Enter Livebook instance URL" aria-label="Enter Livebook instance URL" />
+ </div>
+ <div id="keyboard-shortcuts-content" class="hidden">
+`+((s=o(n,"each").call(e??(t.nullContext||{}),e!=null?o(e,"shortcuts"):e,{name:"each",hash:{},fn:t.program(1,i,0),inverse:t.noop,data:i,loc:{start:{line:39,column:4},end:{line:54,column:13}}}))!=null?s:"")+` </div>
+</div>
+`},useData:!0});var wu=".display-settings",bu="#settings-modal-content",Hn="#modal-settings-tab",Nn="#modal-keyboard-shortcuts-tab",hs="#settings-content",fs="#keyboard-shortcuts-content",Eu=[{title:"Settings",id:"modal-settings-tab"},{title:"Keyboard shortcuts",id:"modal-keyboard-shortcuts-tab"}];window.addEventListener("exdoc:loaded",xu);function xu(){M(wu).forEach(t=>{t.addEventListener("click",Mn)})}function ds(){f(Nn).classList.remove("active"),f(Hn).classList.add("active"),f(hs).cl [...]
+ .${this.className} {
+ position: fixed;
+ display: block;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 3px;
+ background-color: black;
+ z-index: 9999;
+ transition:
+ transform ${this.animationDuration}ms ease-out,
+ opacity ${this.animationDuration/2}ms ${this.animationDuration/2}ms ease-in;
+ transform: translate3d(0, 0, 0) scaleX(var(--progress, 0));
+ transform-origin: 0;
+ }
+ `}show(){this.visible||(this.visible=!0,this.installStyleElement(),this.installProgressElement(),this.startTrickling())}hide(){this.visible&&!this.hiding&&(this.hiding=!0,this.fadeProgressElement(()=>{this.uninstallProgressElement(),this.stopTrickling(),this.visible=!1,this.hiding=!1}))}setValue(e){this.value=Math.min(1,Math.max(this.minValue,e)),this.refresh()}installStyleElement(){document.head.prepend(this.styleElement)}installProgressElement(){this.progressElement.style.setProperty( [...]
+/*! Bundled license information:
+
+lunr/lunr.js:
+ (**
+ * lunr - http://lunrjs.com - A bit like Solr, but much smaller and not as bright - 2.3.9
+ * Copyright (C) 2020 Oliver Nightingale
+ * @license MIT
+ *)
+ (*!
+ * lunr.utils
+ * Copyright (C) 2020 Oliver Nightingale
+ *)
+ (*!
+ * lunr.Set
+ * Copyright (C) 2020 Oliver Nightingale
+ *)
+ (*!
+ * lunr.tokenizer
+ * Copyright (C) 2020 Oliver Nightingale
+ *)
+ (*!
+ * lunr.Pipeline
+ * Copyright (C) 2020 Oliver Nightingale
+ *)
+ (*!
+ * lunr.Vector
+ * Copyright (C) 2020 Oliver Nightingale
+ *)
+ (*!
+ * lunr.stemmer
+ * Copyright (C) 2020 Oliver Nightingale
+ * Includes code from - http://tartarus.org/~martin/PorterStemmer/js.txt
+ *)
+ (*!
+ * lunr.stopWordFilter
+ * Copyright (C) 2020 Oliver Nightingale
+ *)
+ (*!
+ * lunr.trimmer
+ * Copyright (C) 2020 Oliver Nightingale
+ *)
+ (*!
+ * lunr.TokenSet
+ * Copyright (C) 2020 Oliver Nightingale
+ *)
+ (*!
+ * lunr.Index
+ * Copyright (C) 2020 Oliver Nightingale
+ *)
+ (*!
+ * lunr.Builder
+ * Copyright (C) 2020 Oliver Nightingale
+ *)
+*/
diff --git a/main/dist/html-erlang-DQDXQC7W.css b/main/dist/html-erlang-DQDXQC7W.css
new file mode 100644
index 0000000..2a7bf5f
--- /dev/null
+++ b/main/dist/html-erlang-DQDXQC7W.css
@@ -0,0 +1,6 @@
+:root{--main: hsl(0, 100%, 44%);--mainDark: hsl(0, 100%, 34%);--mainDarkest: hsl(0, 100%, 24%);--mainLight: hsl(0, 100%, 64%);--mainLightest: hsl(0, 100%, 74%);--searchBarFocusColor: hsl(0, 100%, 50%);--searchBarBorderColor: rgb(255, 71, 71, .1);--link-color: hsl(212, 96%, 45%);--link-visited-color: hsl(212, 96%, 40%)}body.dark{--link-color: hsl(212, 56%, 72%);--link-visited-color: hsl(212, 56%, 67%)}@font-face{font-family:Lato;font-style:normal;font-display:swap;font-weight:400;src:url( [...]
+/*! Bundled license information:
+
+modern-normalize/modern-normalize.css:
+ (*! modern-normalize v3.0.1 | MIT License | https://github.com/sindresorhus/modern-normalize *)
+*/
diff --git a/main/dist/lato-latin-400-normal-W7754I4D.woff2 b/main/dist/lato-latin-400-normal-W7754I4D.woff2
new file mode 100644
index 0000000..ff60934
Binary files /dev/null and b/main/dist/lato-latin-400-normal-W7754I4D.woff2 differ
diff --git a/main/dist/lato-latin-700-normal-2XVSBPG4.woff2 b/main/dist/lato-latin-700-normal-2XVSBPG4.woff2
new file mode 100644
index 0000000..11de83f
Binary files /dev/null and b/main/dist/lato-latin-700-normal-2XVSBPG4.woff2 differ
diff --git a/main/dist/lato-latin-ext-400-normal-N27NCBWW.woff2 b/main/dist/lato-latin-ext-400-normal-N27NCBWW.woff2
new file mode 100644
index 0000000..edb9fa6
Binary files /dev/null and b/main/dist/lato-latin-ext-400-normal-N27NCBWW.woff2 differ
diff --git a/main/dist/lato-latin-ext-700-normal-Q2L5DVMW.woff2 b/main/dist/lato-latin-ext-700-normal-Q2L5DVMW.woff2
new file mode 100644
index 0000000..2c8aaa8
Binary files /dev/null and b/main/dist/lato-latin-ext-700-normal-Q2L5DVMW.woff2 differ
diff --git a/main/dist/remixicon-QPNJX265.woff2 b/main/dist/remixicon-QPNJX265.woff2
new file mode 100644
index 0000000..997d77c
Binary files /dev/null and b/main/dist/remixicon-QPNJX265.woff2 differ
diff --git a/main/dist/search_data-BE868044.js b/main/dist/search_data-BE868044.js
new file mode 100644
index 0000000..a79f75e
--- /dev/null
+++ b/main/dist/search_data-BE868044.js
@@ -0,0 +1 @@
+searchData={"items":[{"type":"module","title":"arrow","doc":"","ref":"arrow.html"},{"type":"behaviour","title":"arrow_array","doc":"Provides a record, a behaviour, and functions to work with Apache Arrow Arrays.\n\nThis module as mentioned, provides conveniences for working with Apache Arrow\n[Arrays](https://arrow.apache.org/docs/format/Glossary.html#term-array) of\ndifferent\n[Layouts](https://arrow.apache.org/docs/format/Glossary.html#term-physical-layout).\nFirstly, it provides a rec [...]
\ No newline at end of file
diff --git a/main/dist/sidebar_items-DDBC4286.js b/main/dist/sidebar_items-DDBC4286.js
new file mode 100644
index 0000000..b5b7f6f
--- /dev/null
+++ b/main/dist/sidebar_items-DDBC4286.js
@@ -0,0 +1 @@
+sidebarNodes={"modules":[{"id":"arrow","deprecated":false,"group":"","title":"arrow","sections":[]},{"id":"arrow_array","deprecated":false,"group":"","title":"arrow_array","sections":[],"nodeGroups":[{"name":"Types","nodes":[{"id":"array/0","deprecated":false,"title":"array()","anchor":"t:array/0"},{"id":"layout/0","deprecated":false,"title":"layout()","anchor":"t:layout/0"}],"key":"types"},{"name":"Callbacks","nodes":[{"id":"from_erlang/2","deprecated":false,"title":"from_erlang(Value, [...]
\ No newline at end of file
diff --git a/main/index.html b/main/index.html
new file mode 100644
index 0000000..55a33a2
--- /dev/null
+++ b/main/index.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="utf-8">
+ <title>arrow v0.1.0 — Documentation</title>
+ <meta http-equiv="refresh" content="0; url=readme.html">
+ <meta name="generator" content="ExDoc v0.38.2">
+ </head>
+ <body></body>
+</html>
diff --git a/main/license.html b/main/license.html
new file mode 100644
index 0000000..874aa46
--- /dev/null
+++ b/main/license.html
@@ -0,0 +1,359 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="generator" content="ExDoc v0.38.2">
+ <meta name="project" content="arrow v0.1.0">
+
+
+ <title>License — arrow v0.1.0</title>
+
+ <link rel="stylesheet" href="dist/html-erlang-DQDXQC7W.css" />
+
+ <script defer src="dist/sidebar_items-DDBC4286.js"></script>
+ <script defer src="docs_config.js"></script>
+ <script defer src="dist/html-DPJLHKSM.js"></script>
+
+ </head>
+ <body>
+ <script>(()=>{var t="ex_doc:settings",e="dark";var o="dark",s="light";var E="sidebar_state",n="closed";var r="sidebar_width";var a="sidebar-open";var i=new URLSearchParams(window.location.search),S=i.get("theme")||JSON.parse(localStorage.getItem(t)||"{}").theme;(S===o||S!==s&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&document.body.classList.add(e);var d=sessionStorage.getItem(E),A=d!==n&&!window.matchMedia(`screen and (max-width: ${768}px)`).matches;document.body.cl [...]
+</script>
+
+<div class="body-wrapper">
+
+<button id="sidebar-menu" class="sidebar-button sidebar-toggle" aria-label="toggle sidebar" aria-controls="sidebar">
+ <i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i>
+</button>
+
+<nav id="sidebar" class="sidebar">
+
+ <div class="sidebar-header">
+ <div class="sidebar-projectInfo">
+
+ <div>
+ <a href="https://github.com/apache/arrow-erlang" class="sidebar-projectName" translate="no">
+arrow
+ </a>
+ <div class="sidebar-projectVersion" translate="no">
+ v0.1.0
+ </div>
+ </div>
+ </div>
+ <ul id="sidebar-list-nav" class="sidebar-list-nav" role="tablist" data-extras=""></ul>
+ </div>
+</nav>
+
+<output role="status" id="toast"></output>
+
+<main class="content page-extra" id="main" data-type="extras">
+ <div id="content" class="content-inner">
+ <div class="top-search">
+ <div class="search-settings">
+ <form class="search-bar" action="search.html">
+ <label class="search-label">
+ <span class="sr-only">Search documentation of arrow</span>
+ <input name="q" type="text" class="search-input" placeholder="Press / to search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
+ </label>
+ <button type="submit" class="search-button" aria-label="Submit Search" tabindex="-1">
+ <i class="ri-search-2-line ri-lg" aria-hidden="true"></i>
+ </button>
+ <button type="button" tabindex="-1" class="search-close-button" aria-hidden="true">
+ <i class="ri-close-line ri-lg" title="Cancel search"></i>
+ </button>
+ </form>
+ <div class="autocomplete">
+ </div>
+ <button class="icon-settings display-settings">
+ <i class="ri-settings-3-line"></i>
+ <span class="sr-only">Settings</span>
+ </button>
+ </div>
+ </div>
+
+<div id="top-content">
+ <div class="heading-with-actions top-heading">
+ <h1>License</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/LICENSE#L1" title="View Source" class="icon-action" rel="help">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ <span class="sr-only">View Source</span>
+ </a>
+
+ </div>
+
+
+<pre>
+
+ Apache License
+ Version 2.0, January 2004
+ http://www.apache.org/licenses/
+
+ TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION
+
+ 1. Definitions.
+
+ "License" shall mean the terms and conditions for use, reproduction,
+ and distribution as defined by Sections 1 through 9 of this document.
+
+ "Licensor" shall mean the copyright owner or entity authorized by
+ the copyright owner that is granting the License.
+
+ "Legal Entity" shall mean the union of the acting entity and all
+ other entities that control, are controlled by, or are under common
+ control with that entity. For the purposes of this definition,
+ "control" means (i) the power, direct or indirect, to cause the
+ direction or management of such entity, whether by contract or
+ otherwise, or (ii) ownership of fifty percent (50%) or more of the
+ outstanding shares, or (iii) beneficial ownership of such entity.
+
+ "You" (or "Your") shall mean an individual or Legal Entity
+ exercising permissions granted by this License.
+
+ "Source" form shall mean the preferred form for making modifications,
+ including but not limited to software source code, documentation
+ source, and configuration files.
+
+ "Object" form shall mean any form resulting from mechanical
+ transformation or translation of a Source form, including but
+ not limited to compiled object code, generated documentation,
+ and conversions to other media types.
+
+ "Work" shall mean the work of authorship, whether in Source or
+ Object form, made available under the License, as indicated by a
+ copyright notice that is included in or attached to the work
+ (an example is provided in the Appendix below).
+
+ "Derivative Works" shall mean any work, whether in Source or Object
+ form, that is based on (or derived from) the Work and for which the
+ editorial revisions, annotations, elaborations, or other modifications
+ represent, as a whole, an original work of authorship. For the purposes
+ of this License, Derivative Works shall not include works that remain
+ separable from, or merely link (or bind by name) to the interfaces of,
+ the Work and Derivative Works thereof.
+
+ "Contribution" shall mean any work of authorship, including
+ the original version of the Work and any modifications or additions
+ to that Work or Derivative Works thereof, that is intentionally
+ submitted to Licensor for inclusion in the Work by the copyright owner
+ or by an individual or Legal Entity authorized to submit on behalf of
+ the copyright owner. For the purposes of this definition, "submitted"
+ means any form of electronic, verbal, or written communication sent
+ to the Licensor or its representatives, including but not limited to
+ communication on electronic mailing lists, source code control systems,
+ and issue tracking systems that are managed by, or on behalf of, the
+ Licensor for the purpose of discussing and improving the Work, but
+ excluding communication that is conspicuously marked or otherwise
+ designated in writing by the copyright owner as "Not a Contribution."
+
+ "Contributor" shall mean Licensor and any individual or Legal Entity
+ on behalf of whom a Contribution has been received by Licensor and
+ subsequently incorporated within the Work.
+
+ 2. Grant of Copyright License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ copyright license to reproduce, prepare Derivative Works of,
+ publicly display, publicly perform, sublicense, and distribute the
+ Work and such Derivative Works in Source or Object form.
+
+ 3. Grant of Patent License. Subject to the terms and conditions of
+ this License, each Contributor hereby grants to You a perpetual,
+ worldwide, non-exclusive, no-charge, royalty-free, irrevocable
+ (except as stated in this section) patent license to make, have made,
+ use, offer to sell, sell, import, and otherwise transfer the Work,
+ where such license applies only to those patent claims licensable
+ by such Contributor that are necessarily infringed by their
+ Contribution(s) alone or by combination of their Contribution(s)
+ with the Work to which such Contribution(s) was submitted. If You
+ institute patent litigation against any entity (including a
+ cross-claim or counterclaim in a lawsuit) alleging that the Work
+ or a Contribution incorporated within the Work constitutes direct
+ or contributory patent infringement, then any patent licenses
+ granted to You under this License for that Work shall terminate
+ as of the date such litigation is filed.
+
+ 4. Redistribution. You may reproduce and distribute copies of the
+ Work or Derivative Works thereof in any medium, with or without
+ modifications, and in Source or Object form, provided that You
+ meet the following conditions:
+
+ (a) You must give any other recipients of the Work or
+ Derivative Works a copy of this License; and
+
+ (b) You must cause any modified files to carry prominent notices
+ stating that You changed the files; and
+
+ (c) You must retain, in the Source form of any Derivative Works
+ that You distribute, all copyright, patent, trademark, and
+ attribution notices from the Source form of the Work,
+ excluding those notices that do not pertain to any part of
+ the Derivative Works; and
+
+ (d) If the Work includes a "NOTICE" text file as part of its
+ distribution, then any Derivative Works that You distribute must
+ include a readable copy of the attribution notices contained
+ within such NOTICE file, excluding those notices that do not
+ pertain to any part of the Derivative Works, in at least one
+ of the following places: within a NOTICE text file distributed
+ as part of the Derivative Works; within the Source form or
+ documentation, if provided along with the Derivative Works; or,
+ within a display generated by the Derivative Works, if and
+ wherever such third-party notices normally appear. The contents
+ of the NOTICE file are for informational purposes only and
+ do not modify the License. You may add Your own attribution
+ notices within Derivative Works that You distribute, alongside
+ or as an addendum to the NOTICE text from the Work, provided
+ that such additional attribution notices cannot be construed
+ as modifying the License.
+
+ You may add Your own copyright statement to Your modifications and
+ may provide additional or different license terms and conditions
+ for use, reproduction, or distribution of Your modifications, or
+ for any such Derivative Works as a whole, provided Your use,
+ reproduction, and distribution of the Work otherwise complies with
+ the conditions stated in this License.
+
+ 5. Submission of Contributions. Unless You explicitly state otherwise,
+ any Contribution intentionally submitted for inclusion in the Work
+ by You to the Licensor shall be under the terms and conditions of
+ this License, without any additional terms or conditions.
+ Notwithstanding the above, nothing herein shall supersede or modify
+ the terms of any separate license agreement you may have executed
+ with Licensor regarding such Contributions.
+
+ 6. Trademarks. This License does not grant permission to use the trade
+ names, trademarks, service marks, or product names of the Licensor,
+ except as required for reasonable and customary use in describing the
+ origin of the Work and reproducing the content of the NOTICE file.
+
+ 7. Disclaimer of Warranty. Unless required by applicable law or
+ agreed to in writing, Licensor provides the Work (and each
+ Contributor provides its Contributions) on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
+ implied, including, without limitation, any warranties or conditions
+ of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A
+ PARTICULAR PURPOSE. You are solely responsible for determining the
+ appropriateness of using or redistributing the Work and assume any
+ risks associated with Your exercise of permissions under this License.
+
+ 8. Limitation of Liability. In no event and under no legal theory,
+ whether in tort (including negligence), contract, or otherwise,
+ unless required by applicable law (such as deliberate and grossly
+ negligent acts) or agreed to in writing, shall any Contributor be
+ liable to You for damages, including any direct, indirect, special,
+ incidental, or consequential damages of any character arising as a
+ result of this License or out of the use or inability to use the
+ Work (including but not limited to damages for loss of goodwill,
+ work stoppage, computer failure or malfunction, or any and all
+ other commercial damages or losses), even if such Contributor
+ has been advised of the possibility of such damages.
+
+ 9. Accepting Warranty or Additional Liability. While redistributing
+ the Work or Derivative Works thereof, You may choose to offer,
+ and charge a fee for, acceptance of support, warranty, indemnity,
+ or other liability obligations and/or rights consistent with this
+ License. However, in accepting such obligations, You may act only
+ on Your own behalf and on Your sole responsibility, not on behalf
+ of any other Contributor, and only if You agree to indemnify,
+ defend, and hold each Contributor harmless for any liability
+ incurred by, or claims asserted against, such Contributor by reason
+ of your accepting any such warranty or additional liability.
+
+ END OF TERMS AND CONDITIONS
+
+ APPENDIX: How to apply the Apache License to your work.
+
+ To apply the Apache License to your work, attach the following
+ boilerplate notice, with the fields enclosed by brackets "[]"
+ replaced with your own identifying information. (Don't include
+ the brackets!) The text should be enclosed in the appropriate
+ comment syntax for the file format. We also recommend that a
+ file or class name and description of purpose be included on the
+ same "printed page" as the copyright notice for easier
+ identification within third-party archives.
+
+ Copyright [yyyy] [name of copyright owner]
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+</pre>
+
+</div>
+
+<div class="bottom-actions" id="bottom-actions">
+ <div class="bottom-actions-item">
+
+ <a href="readme.html" class="bottom-actions-button" rel="prev">
+ <span class="subheader">
+ ← Previous Page
+ </span>
+ <span class="title">
+Overview
+ </span>
+ </a>
+
+ </div>
+ <div class="bottom-actions-item">
+
+ <a href="quick-run-through.html" class="bottom-actions-button" rel="next">
+ <span class="subheader">
+ Next Page →
+ </span>
+ <span class="title">
+Quick Run-Through Guide
+ </span>
+ </a>
+
+ </div>
+</div>
+ <footer class="footer">
+ <p>
+
+ <span class="line">
+ <a href="https://hex.pm/packages/arrow/0.1.0" class="footer-hex-package">Hex Package</a>
+
+ <a href="https://preview.hex.pm/preview/arrow/0.1.0">Hex Preview</a>
+
+ (<a href="https://preview.hex.pm/preview/arrow/0.1.0/show/LICENSE">current file</a>)
+
+ </span>
+
+ <span class="line">
+ <button class="a-main footer-button display-quick-switch" title="Search HexDocs packages">
+ Search HexDocs
+ </button>
+
+ <a href="arrow.epub" title="ePub version">
+ Download ePub version
+ </a>
+
+ </span>
+ </p>
+
+ <p class="built-using">
+ Built using
+ <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.38.2) for the
+
+ <a href="https://erlang.org" title="Erlang" target="_blank" translate="no">Erlang programming language</a>
+
+ </p>
+
+ </footer>
+ </div>
+</main>
+</div>
+
+ </body>
+</html>
diff --git a/main/quick-run-through.html b/main/quick-run-through.html
new file mode 100644
index 0000000..5725619
--- /dev/null
+++ b/main/quick-run-through.html
@@ -0,0 +1,224 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="generator" content="ExDoc v0.38.2">
+ <meta name="project" content="arrow v0.1.0">
+
+
+ <title>Quick Run-Through Guide — arrow v0.1.0</title>
+
+ <link rel="stylesheet" href="dist/html-erlang-DQDXQC7W.css" />
+
+ <script defer src="dist/sidebar_items-DDBC4286.js"></script>
+ <script defer src="docs_config.js"></script>
+ <script defer src="dist/html-DPJLHKSM.js"></script>
+
+ </head>
+ <body>
+ <script>(()=>{var t="ex_doc:settings",e="dark";var o="dark",s="light";var E="sidebar_state",n="closed";var r="sidebar_width";var a="sidebar-open";var i=new URLSearchParams(window.location.search),S=i.get("theme")||JSON.parse(localStorage.getItem(t)||"{}").theme;(S===o||S!==s&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&document.body.classList.add(e);var d=sessionStorage.getItem(E),A=d!==n&&!window.matchMedia(`screen and (max-width: ${768}px)`).matches;document.body.cl [...]
+</script>
+
+<div class="body-wrapper">
+
+<button id="sidebar-menu" class="sidebar-button sidebar-toggle" aria-label="toggle sidebar" aria-controls="sidebar">
+ <i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i>
+</button>
+
+<nav id="sidebar" class="sidebar">
+
+ <div class="sidebar-header">
+ <div class="sidebar-projectInfo">
+
+ <div>
+ <a href="https://github.com/apache/arrow-erlang" class="sidebar-projectName" translate="no">
+arrow
+ </a>
+ <div class="sidebar-projectVersion" translate="no">
+ v0.1.0
+ </div>
+ </div>
+ </div>
+ <ul id="sidebar-list-nav" class="sidebar-list-nav" role="tablist" data-extras=""></ul>
+ </div>
+</nav>
+
+<output role="status" id="toast"></output>
+
+<main class="content page-livemd" id="main" data-type="extras">
+ <div id="content" class="content-inner">
+ <div class="top-search">
+ <div class="search-settings">
+ <form class="search-bar" action="search.html">
+ <label class="search-label">
+ <span class="sr-only">Search documentation of arrow</span>
+ <input name="q" type="text" class="search-input" placeholder="Press / to search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
+ </label>
+ <button type="submit" class="search-button" aria-label="Submit Search" tabindex="-1">
+ <i class="ri-search-2-line ri-lg" aria-hidden="true"></i>
+ </button>
+ <button type="button" tabindex="-1" class="search-close-button" aria-hidden="true">
+ <i class="ri-close-line ri-lg" title="Cancel search"></i>
+ </button>
+ </form>
+ <div class="autocomplete">
+ </div>
+ <button class="icon-settings display-settings">
+ <i class="ri-settings-3-line"></i>
+ <span class="sr-only">Settings</span>
+ </button>
+ </div>
+ </div>
+
+<div id="top-content">
+ <div class="heading-with-actions top-heading">
+ <h1>Quick run-through</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/guides/quick-run-through.livemd#L1" title="View Source" class="icon-action" rel="help">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ <span class="sr-only">View Source</span>
+ </a>
+
+ </div>
+
+ <div class="livebook-badge-container">
+ <a href="#" class="livebook-badge">
+ <img src="https://livebook.dev/badge/v1/blue.svg" alt="Run in Livebook" width="150" />
+ </a>
+ </div>
+
+
+<pre><code class="makeup elixir" translate="no"><span class="nc">Mix</span><span class="o">.</span><span class="n">install</span><span class="p" data-group-id="7429264539-1">(</span><span class="p" data-group-id="7429264539-2">[</span><span class="w">
+ </span><span class="p" data-group-id="7429264539-3">{</span><span class="ss">:arrow</span><span class="p">,</span><span class="w"> </span><span class="ss">git</span><span class="p">:</span><span class="w"> </span><span class="s">"https://github.com/Benjamin-Philip/arrow.git"</span><span class="p" data-group-id="7429264539-3">}</span><span class="w">
+</span><span class="p" data-group-id="7429264539-2">]</span><span class="p" data-group-id="7429264539-1">)</span></code></pre><h2 id="introduction" class="section-heading"><a href="#introduction" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i></a><span class="text">Introduction</span></h2><p>Serializing Erlang into Arrow typically follows the following sequence of
+events:</p><ol><li>Creating a <a href="https://arrow.apache.org/docs/format/Columnar.html#schema-message">Schema
+Message</a>
+with the schema of the data</li><li>Creating Arrow Arrays for each column in the schema.</li><li>Combining the columns of each batch or table into a <a href="https://arrow.apache.org/docs/format/Columnar.html#recordbatch-message">RecordBatch
+Message</a></li><li>Combining the Schema and all the RecordBatches into an <a href="https://arrow.apache.org/docs/format/Columnar.html#ipc-streaming-format">IPC
+Stream</a>
+or an <a href="https://arrow.apache.org/docs/format/Columnar.html#ipc-file-format">IPC
+File</a></li></ol><p>Technically, to use the Arrow Columnar Format <em>itself</em> you only need to do
+step 2. The other steps are in order to use <a href="https://arrow.apache.org/docs/format/Columnar.html#serialization-and-interprocess-communication-ipc">Arrow
+IPC</a>
+which is an abstraction over the Arrow Columnar Format. IPC specifies a format
+to organize multiple Arrow Arrays, and is the standard choice when you do not
+have your own custom format detailing so.</p><p>For the purposes of illustration, let use assume that we have to export the
+annual marks of a school to Arrow.</p><h2 id="creating-a-schema" class="section-heading"><a href="#creating-a-schema" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i></a><span class="text">Creating a Schema</span></h2><p>The marksheet of each class has 4 columns:</p><ol><li>id, which is the Roll no.</li><li>name, which is the first name of the student</li><li>age, which is the age of the student</li><li>marks, which is a list of all the marks of the student</li></ol><p>Ide [...]
+using a list to show how to manage nested types. We can pretend that the school
+administration is stupid or something.</p><p>First, we must declare a field for each column:</p><pre><code class="makeup erlang" translate="no"><span class="n">IdField</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">arrow_ipc_field</span><span class="p">:</span><span class="nf">from_erlang</span><span class="p" data-group-id="2165807401-1">(</span><span class="p" data-group-id="2165807401-2">{</span><span class="ss">int</span><span class="p" [...]
+</span><span class="n">NameField</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">arrow_ipc_field</span><span class="p">:</span><span class="nf">from_erlang</span><span class="p" data-group-id="2165807401-4">(</span><span class="ss">large_binary</span><span class="p">,</span><span class="w"> </span><span class="s">"name"</span><span class="p" data-group-id="2165807401-4">)</span><span class="p">,</span><span class="w">
+</span><span class="n">AgeField</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">arrow_ipc_field</span><span class="p">:</span><span class="nf">from_erlang</span><span class="p" data-group-id="2165807401-5">(</span><span class="p" data-group-id="2165807401-6">{</span><span class="ss">int</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="2165807401-7">#{</span><span class="ss">bit_width</span><span class="w"> [...]
+</span><span class="n">AnnualMarksField</span><span class="w"> </span><span class="o">=</span><span class="w">
+ </span><span class="nc">arrow_ipc_field</span><span class="p">:</span><span class="nf">from_erlang</span><span class="p" data-group-id="2165807401-8">(</span><span class="w">
+ </span><span class="p" data-group-id="2165807401-9">{</span><span class="ss">fixed_size_list</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="2165807401-10">#{</span><span class="ss">list_size</span><span class="w"> </span><span class="p">=></span><span class="w"> </span><span class="mi">3</span><span class="p" data-group-id="2165807401-10">}</span><span class="p" data-group-id="2165807401-9">}</span><span class="p">,</span><span class="w"> [...]
+ </span><span class="nc">arrow_ipc_field</span><span class="p">:</span><span class="nf">from_erlang</span><span class="p" data-group-id="2165807401-12">(</span><span class="w">
+ </span><span class="p" data-group-id="2165807401-13">{</span><span class="ss">int</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="2165807401-14">#{</span><span class="ss">bit_width</span><span class="w"> </span><span class="p">=></span><span class="w"> </span><span class="mi">8</span><span class="p">,</span><span class="w"> </span><span class="ss">is_signed</span><span class="w"> </span><span class="p">=></span><span class="w"> < [...]
+ </span><span class="p" data-group-id="2165807401-12">)</span><span class="w">
+ </span><span class="p" data-group-id="2165807401-11">]</span><span class="w">
+ </span><span class="p" data-group-id="2165807401-8">)</span><span class="p">.</span></code></pre><p>As you may have noticed, the parameters for declaring a field is the field type,
+followed by the field name. Each type may have extra metadata associated with
+it, such as the int. In the case of a nested datatype, we must also include a
+list of the fields that are nested.</p><p>We then must take those fields and combine them into a schema:</p><pre><code class="makeup erlang" translate="no"><span class="n">Schema</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">arrow_ipc_schema</span><span class="p">:</span><span class="nf">from_erlang</span><span class="p" data-group-id="6826869314-1">(</span><span class="p" data-group-id="6826869314-2">[</span><span class="n">IdField</span> [...]
+Let's assume that there are 3 classes, Class1, Class2, and Class3. We must
+create the data for each class separately:</p><p>Here's Class1:</p><pre><code class="makeup erlang" translate="no"><span class="n">Class1Id</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">arrow_array</span><span class="p">:</span><span class="nf">from_erlang</span><span class="p" data-group-id="8603024659-1">(</span><span class="ss">fixed_primitive</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="860302465 [...]
+</span><span class="n">Class1Name</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">arrow_array</span><span class="p">:</span><span class="nf">from_erlang</span><span class="p" data-group-id="8603024659-4">(</span><span class="w">
+ </span><span class="ss">variable_binary</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="8603024659-5">[</span><span class="p" data-group-id="8603024659-6"><<</span><span class="s">"alice"</span><span class="p" data-group-id="8603024659-6">>></span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="8603024659-7"><<</span><span class="s">"bob"</span><span class="p" data-group-id=" [...]
+ </span><span class="p" data-group-id="8603024659-4">)</span><span class="p">,</span><span class="w">
+</span><span class="n">Class1Age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">arrow_array</span><span class="p">:</span><span class="nf">from_erlang</span><span class="p" data-group-id="8603024659-10">(</span><span class="ss">fixed_primitive</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="8603024659-11">[</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">2 [...]
+</span><span class="n">Class1AnnualMarks</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">arrow_array</span><span class="p">:</span><span class="nf">from_erlang</span><span class="p" data-group-id="8603024659-13">(</span><span class="w">
+ </span><span class="ss">fixed_list</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="8603024659-14">[</span><span class="p" data-group-id="8603024659-15">[</span><span class="mi">100</span><span class="p">,</span><span class="w"> </span><span class="mi">97</span><span class="p">,</span><span class="w"> </span><span class="mi">98</span><span class="p" data-group-id="8603024659-15">]</span><span class="p">,</span><span class="w"> </span><span clas [...]
+ </span><span class="p" data-group-id="8603024659-13">)</span><span class="p">,</span><span class="w">
+</span><span class="n">Class1Columns</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p" data-group-id="8603024659-19">[</span><span class="n">Class1Id</span><span class="p">,</span><span class="w"> </span><span class="n">Class1Name</span><span class="p">,</span><span class="w"> </span><span class="n">Class1Age</span><span class="p">,</span><span class="w"> </span><span class="n">Class1AnnualMarks</span><span class="p" data-group-id="8603024659-1 [...]
+</span><span class="n">Class2Name</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">arrow_array</span><span class="p">:</span><span class="nf">from_erlang</span><span class="p" data-group-id="5030738258-4">(</span><span class="w">
+ </span><span class="ss">variable_binary</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="5030738258-5">[</span><span class="p" data-group-id="5030738258-6"><<</span><span class="s">"anne"</span><span class="o">/</span><span class="ss">utf8</span><span class="o">-</span><span class="ss">little</span><span class="p" data-group-id="5030738258-6">>></span><span class="p">,</span><span class="w"> </span><span class="p" data-gro [...]
+ </span><span class="p" data-group-id="5030738258-4">)</span><span class="p">,</span><span class="w">
+</span><span class="n">Class2Age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">arrow_array</span><span class="p">:</span><span class="nf">from_erlang</span><span class="p" data-group-id="5030738258-10">(</span><span class="ss">fixed_primitive</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="5030738258-11">[</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">2 [...]
+</span><span class="n">Class2AnnualMarks</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">arrow_array</span><span class="p">:</span><span class="nf">from_erlang</span><span class="p" data-group-id="5030738258-13">(</span><span class="w">
+ </span><span class="ss">fixed_list</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="5030738258-14">[</span><span class="p" data-group-id="5030738258-15">[</span><span class="mi">90</span><span class="p">,</span><span class="w"> </span><span class="mi">87</span><span class="p">,</span><span class="w"> </span><span class="mi">75</span><span class="p" data-group-id="5030738258-15">]</span><span class="p">,</span><span class="w"> </span><span class [...]
+ </span><span class="p" data-group-id="5030738258-13">)</span><span class="p">,</span><span class="w">
+</span><span class="n">Class2Columns</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p" data-group-id="5030738258-19">[</span><span class="n">Class2Id</span><span class="p">,</span><span class="w"> </span><span class="n">Class2Name</span><span class="p">,</span><span class="w"> </span><span class="n">Class2Age</span><span class="p">,</span><span class="w"> </span><span class="n">Class2AnnualMarks</span><span class="p" data-group-id="5030738258-1 [...]
+</span><span class="n">Class3Name</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">arrow_array</span><span class="p">:</span><span class="nf">from_erlang</span><span class="p" data-group-id="3954646949-4">(</span><span class="w">
+ </span><span class="ss">variable_binary</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="3954646949-5">[</span><span class="p" data-group-id="3954646949-6"><<</span><span class="s">"anjali"</span><span class="p" data-group-id="3954646949-6">>></span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="3954646949-7"><<</span><span class="s">"biju"</span><span class="p" data-group-id [...]
+ </span><span class="p" data-group-id="3954646949-4">)</span><span class="p">,</span><span class="w">
+</span><span class="n">Class3Age</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">arrow_array</span><span class="p">:</span><span class="nf">from_erlang</span><span class="p" data-group-id="3954646949-10">(</span><span class="ss">fixed_primitive</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="3954646949-11">[</span><span class="mi">10</span><span class="p">,</span><span class="w"> </span><span class="mi">2 [...]
+</span><span class="n">Class3AnnualMarks</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">arrow_array</span><span class="p">:</span><span class="nf">from_erlang</span><span class="p" data-group-id="3954646949-13">(</span><span class="w">
+ </span><span class="ss">fixed_list</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="3954646949-14">[</span><span class="p" data-group-id="3954646949-15">[</span><span class="mi">100</span><span class="p">,</span><span class="w"> </span><span class="mi">100</span><span class="p">,</span><span class="w"> </span><span class="mi">98</span><span class="p" data-group-id="3954646949-15">]</span><span class="p">,</span><span class="w"> </span><span cla [...]
+ </span><span class="p" data-group-id="3954646949-13">)</span><span class="p">,</span><span class="w">
+</span><span class="n">Class3Columns</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="p" data-group-id="3954646949-19">[</span><span class="n">Class3Id</span><span class="p">,</span><span class="w"> </span><span class="n">Class3Name</span><span class="p">,</span><span class="w"> </span><span class="n">Class3Age</span><span class="p">,</span><span class="w"> </span><span class="n">Class3AnnualMarks</span><span class="p" data-group-id="3954646949-1 [...]
+case marks from different classes. Another example would marks of the same class
+throughout different years. The columns that make up such a table can be
+combined like so:</p><pre><code class="makeup erlang" translate="no"><span class="n">Class1RecordBatch</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">arrow_ipc_record_batch</span><span class="p">:</span><span class="nf">from_erlang</span><span class="p" data-group-id="0909053554-1">(</span><span class="n">Class1Columns</span><span class="p" data-group-id="0909053554-1">)</span><span class="p">,</span><span class="w">
+</span><span class="n">Class2RecordBatch</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">arrow_ipc_record_batch</span><span class="p">:</span><span class="nf">from_erlang</span><span class="p" data-group-id="0909053554-2">(</span><span class="n">Class2Columns</span><span class="p" data-group-id="0909053554-2">)</span><span class="p">,</span><span class="w">
+</span><span class="n">Class3RecordBatch</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">arrow_ipc_record_batch</span><span class="p">:</span><span class="nf">from_erlang</span><span class="p" data-group-id="0909053554-3">(</span><span class="n">Class3Columns</span><span class="p" data-group-id="0909053554-3">)</span><span class="p">.</span></code></pre><p>Each of these RecordBatches need a body:</p><pre><code class="makeup erlang" translate [...]
+</span><span class="n">Class2Msg</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">arrow_ipc_message</span><span class="p">:</span><span class="nf">body_from_erlang</span><span class="p" data-group-id="4568588406-2">(</span><span class="n">Class2Columns</span><span class="p" data-group-id="4568588406-2">)</span><span class="p">,</span><span class="w">
+</span><span class="n">Class3Msg</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">arrow_ipc_message</span><span class="p">:</span><span class="nf">body_from_erlang</span><span class="p" data-group-id="4568588406-3">(</span><span class="n">Class3Columns</span><span class="p" data-group-id="4568588406-3">)</span><span class="p">.</span></code></pre><p>Which can then be combined into a message:</p><pre><code class="makeup erlang" translate="no"> [...]
+</span><span class="n">Class2Msg</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">arrow_ipc_message</span><span class="p">:</span><span class="nf">from_erlang</span><span class="p" data-group-id="4924818188-2">(</span><span class="n">Class2RecordBatch</span><span class="p">,</span><span class="w"> </span><span class="n">Class3Body</span><span class="p" data-group-id="4924818188-2">)</span><span class="p">,</span><span class="w">
+</span><span class="n">Class3Msg</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">arrow_ipc_message</span><span class="p">:</span><span class="nf">from_erlang</span><span class="p" data-group-id="4924818188-3">(</span><span class="n">Class3RecordBatch</span><span class="p">,</span><span class="w"> </span><span class="n">Class3Body</span><span class="p" data-group-id="4924818188-3">)</span><span class="p">.</span></code></pre><p>If we wanted t [...]
+</span><span class="n">Class2EMF</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">arrow_ipc_message</span><span class="p">:</span><span class="nf">to_ipc</span><span class="p" data-group-id="6022401258-2">(</span><span class="n">Class2Msg</span><span class="p" data-group-id="6022401258-2">)</span><span class="p">,</span><span class="w">
+</span><span class="n">Class3EMF</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">arrow_ipc_message</span><span class="p">:</span><span class="nf">to_ipc</span><span class="p" data-group-id="6022401258-3">(</span><span class="n">Class3Msg</span><span class="p" data-group-id="6022401258-3">)</span><span class="p">.</span></code></pre><p>Typically, you wouldn't directly use an encapsulated message but a stream or a file instead.</p><h2 id="comb [...]
+stream and a file. The difference between a stream and a file is thin: a file is
+a superset of the stream which supports random access and is meant to be saved
+to a file.</p><!-- livebook:{"break_markdown":true} --><p>We can create a stream like this:</p><pre><code class="makeup erlang" translate="no"><span class="nc">arrow_ipc_message</span><span class="p">:</span><span class="nf">to_stream</span><span class="p" data-group-id="6359936879-1">(</span><span class="p" data-group-id="6359936879-2">[</span><span class="n">SchemaMsg</span><span class="p">,</span><span class="w"> </span><span class="n">Class1Msg</span><span class="p">,</span><span cla [...]
+</span><span class="n">File</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nc">arrow_ipc_file</span><span class="p">:</span><span class="nf">to_ipc</span><span class="p" data-group-id="3064964275-3">(</span><span class="n">ErlFile</span><span class="p" data-group-id="3064964275-3">)</span><span class="p">.</span></code></pre><p>We could then save that binary into a file:</p><pre><code class="makeup erlang" translate="no"><span class="nc">file</ [...]
+
+</div>
+
+<div class="bottom-actions" id="bottom-actions">
+ <div class="bottom-actions-item">
+
+ <a href="license.html" class="bottom-actions-button" rel="prev">
+ <span class="subheader">
+ ← Previous Page
+ </span>
+ <span class="title">
+License
+ </span>
+ </a>
+
+ </div>
+ <div class="bottom-actions-item">
+
+ </div>
+</div>
+ <footer class="footer">
+ <p>
+
+ <span class="line">
+ <a href="https://hex.pm/packages/arrow/0.1.0" class="footer-hex-package">Hex Package</a>
+
+ <a href="https://preview.hex.pm/preview/arrow/0.1.0">Hex Preview</a>
+
+ (<a href="https://preview.hex.pm/preview/arrow/0.1.0/show/guides/quick-run-through.livemd">current file</a>)
+
+ </span>
+
+ <span class="line">
+ <button class="a-main footer-button display-quick-switch" title="Search HexDocs packages">
+ Search HexDocs
+ </button>
+
+ <a href="arrow.epub" title="ePub version">
+ Download ePub version
+ </a>
+
+ </span>
+ </p>
+
+ <p class="built-using">
+ Built using
+ <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.38.2) for the
+
+ <a href="https://erlang.org" title="Erlang" target="_blank" translate="no">Erlang programming language</a>
+
+ </p>
+
+ </footer>
+ </div>
+</main>
+</div>
+
+ </body>
+</html>
diff --git a/main/quick-run-through.livemd b/main/quick-run-through.livemd
new file mode 100644
index 0000000..a3d6220
--- /dev/null
+++ b/main/quick-run-through.livemd
@@ -0,0 +1,214 @@
+<!-- -*- mode: markdown; fill-column: 80; -*- -->
+<!---
+ Licensed to the Apache Software Foundation (ASF) under one
+ or more contributor license agreements. See the NOTICE file
+ distributed with this work for additional information
+ regarding copyright ownership. The ASF licenses this file
+ to you under the Apache License, Version 2.0 (the
+ "License"); you may not use this file except in compliance
+ with the License. You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing,
+ software distributed under the License is distributed on an
+ "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ KIND, either express or implied. See the License for the
+ specific language governing permissions and limitations
+ under the License.
+-->
+
+# Quick run-through
+
+```elixir
+Mix.install([
+ {:arrow, git: "https://github.com/Benjamin-Philip/arrow.git"}
+])
+```
+
+## Introduction
+
+Serializing Erlang into Arrow typically follows the following sequence of
+events:
+
+1. Creating a [Schema
+ Message](https://arrow.apache.org/docs/format/Columnar.html#schema-message)
+ with the schema of the data
+2. Creating Arrow Arrays for each column in the schema.
+3. Combining the columns of each batch or table into a [RecordBatch
+ Message](https://arrow.apache.org/docs/format/Columnar.html#recordbatch-message)
+4. Combining the Schema and all the RecordBatches into an [IPC
+ Stream](https://arrow.apache.org/docs/format/Columnar.html#ipc-streaming-format)
+ or an [IPC
+ File](https://arrow.apache.org/docs/format/Columnar.html#ipc-file-format)
+
+Technically, to use the Arrow Columnar Format *itself* you only need to do
+step 2. The other steps are in order to use [Arrow
+IPC](https://arrow.apache.org/docs/format/Columnar.html#serialization-and-interprocess-communication-ipc)
+which is an abstraction over the Arrow Columnar Format. IPC specifies a format
+to organize multiple Arrow Arrays, and is the standard choice when you do not
+have your own custom format detailing so.
+
+For the purposes of illustration, let use assume that we have to export the
+annual marks of a school to Arrow.
+
+## Creating a Schema
+
+The marksheet of each class has 4 columns:
+
+1. id, which is the Roll no.
+2. name, which is the first name of the student
+3. age, which is the age of the student
+4. marks, which is a list of all the marks of the student
+
+Ideally the marks should've been split into columns for each subject, but we are
+using a list to show how to manage nested types. We can pretend that the school
+administration is stupid or something.
+
+First, we must declare a field for each column:
+
+```erlang
+IdField = arrow_ipc_field:from_erlang({int, #{bit_width => 8, is_signed => true}}, "id"),
+NameField = arrow_ipc_field:from_erlang(large_binary, "name"),
+AgeField = arrow_ipc_field:from_erlang({int, #{bit_width => 8, is_signed => false}}, "age"),
+AnnualMarksField =
+ arrow_ipc_field:from_erlang(
+ {fixed_size_list, #{list_size => 3}}, "annual_marks", [
+ arrow_ipc_field:from_erlang(
+ {int, #{bit_width => 8, is_signed => false}}
+ )
+ ]
+ ).
+```
+
+As you may have noticed, the parameters for declaring a field is the field type,
+followed by the field name. Each type may have extra metadata associated with
+it, such as the int. In the case of a nested datatype, we must also include a
+list of the fields that are nested.
+
+We then must take those fields and combine them into a schema:
+
+```erlang
+Schema = arrow_ipc_schema:from_erlang([IdField, NameField, AgeField, AnnualMarksField]).
+```
+
+And that schema into a message:
+
+```erlang
+SchemaMsg = arrow_ipc_message:from_erlang(Schema).
+```
+
+## Creating Arrow Arrays
+
+Now that we've got a schema, it is time to create the data for that schema.
+Let's assume that there are 3 classes, Class1, Class2, and Class3. We must
+create the data for each class separately:
+
+Here's Class1:
+
+```erlang
+Class1Id = arrow_array:from_erlang(fixed_primitive, [0, 1, 2, undefined], {s, 8}),
+Class1Name = arrow_array:from_erlang(
+ variable_binary, [<<"alice">>, <<"bob">>, <<"charlie">>, undefined], {bin, undefined}
+ ),
+Class1Age = arrow_array:from_erlang(fixed_primitive, [10, 20, 30, undefined], {s, 8}),
+Class1AnnualMarks = arrow_array:from_erlang(
+ fixed_list, [[100, 97, 98], [100, 99, 96], [100, 98, 95], undefined], {s, 8}
+ ),
+Class1Columns = [Class1Id, Class1Name, Class1Age, Class1AnnualMarks].
+```
+
+Class2:
+
+```erlang
+Class2Id = arrow_array:from_erlang(fixed_primitive, [3, 4, 5], {s, 8}),
+Class2Name = arrow_array:from_erlang(
+ variable_binary, [<<"anne"/utf8-little>>, <<"benoît"/utf8-little>>, <<"clément"/utf8-little>>], {bin, undefined}
+ ),
+Class2Age = arrow_array:from_erlang(fixed_primitive, [10, 20, 30], {s, 8}),
+Class2AnnualMarks = arrow_array:from_erlang(
+ fixed_list, [[90, 87, 75], [85, 99, 96], [75, 88, 60]], {s, 8}
+ ),
+Class2Columns = [Class2Id, Class2Name, Class2Age, Class2AnnualMarks].
+```
+
+Class3:
+
+```erlang
+Class3Id = arrow_array:from_erlang(fixed_primitive, [6, 7, 8], {s, 8}),
+Class3Name = arrow_array:from_erlang(
+ variable_binary, [<<"anjali">>, <<"biju">>, <<"chandra">>], {bin, undefined}
+ ),
+Class3Age = arrow_array:from_erlang(fixed_primitive, [10, 20, 30], {s, 8}),
+Class3AnnualMarks = arrow_array:from_erlang(
+ fixed_list, [[100, 100, 98], [100, 100, 100], [99, 98, 97]], {s, 8}
+ ),
+Class3Columns = [Class3Id, Class3Name, Class3Age, Class3AnnualMarks].
+```
+
+## Combining Data into a RecordBatch
+
+RecordBatches are used to model different data with the same schema. In this
+case marks from different classes. Another example would marks of the same class
+throughout different years. The columns that make up such a table can be
+combined like so:
+
+```erlang
+Class1RecordBatch = arrow_ipc_record_batch:from_erlang(Class1Columns),
+Class2RecordBatch = arrow_ipc_record_batch:from_erlang(Class2Columns),
+Class3RecordBatch = arrow_ipc_record_batch:from_erlang(Class3Columns).
+```
+
+Each of these RecordBatches need a body:
+
+```erlang
+Class1Msg = arrow_ipc_message:body_from_erlang(Class1Columns),
+Class2Msg = arrow_ipc_message:body_from_erlang(Class2Columns),
+Class3Msg = arrow_ipc_message:body_from_erlang(Class3Columns).
+```
+
+Which can then be combined into a message:
+
+```erlang
+Class1Msg = arrow_ipc_message:from_erlang(Class1RecordBatch, Class1Body),
+Class2Msg = arrow_ipc_message:from_erlang(Class2RecordBatch, Class3Body),
+Class3Msg = arrow_ipc_message:from_erlang(Class3RecordBatch, Class3Body).
+```
+
+If we wanted to, we could serialize these messages into an [Encapsulated message](https://arrow.apache.org/docs/format/Columnar.html#encapsulated-message-format):
+
+```erlang
+Class1EMF = arrow_ipc_message:to_ipc(Class1Msg),
+Class2EMF = arrow_ipc_message:to_ipc(Class2Msg),
+Class3EMF = arrow_ipc_message:to_ipc(Class3Msg).
+```
+
+Typically, you wouldn't directly use an encapsulated message but a stream or a file instead.
+
+## Combining Messages into Streams and Files
+
+Now that we have a schema and some record batches, we can combine them into a
+stream and a file. The difference between a stream and a file is thin: a file is
+a superset of the stream which supports random access and is meant to be saved
+to a file.
+
+<!-- livebook:{"break_markdown":true} -->
+
+We can create a stream like this:
+
+```erlang
+arrow_ipc_message:to_stream([SchemaMsg, Class1Msg, Class2Msg, Class3Msg]).
+```
+
+Or a file like this:
+
+```erlang
+ErlFile = arrow_ipc_file:from_erlang(SchemaMsg, [Class1Msg, Class2Msg, Class3Msg]),
+File = arrow_ipc_file:to_ipc(ErlFile).
+```
+
+We could then save that binary into a file:
+
+```erlang
+file:write_file("/tmp/annual_marks.feather", File).
+```
diff --git a/main/readme.html b/main/readme.html
new file mode 100644
index 0000000..1bf7f64
--- /dev/null
+++ b/main/readme.html
@@ -0,0 +1,161 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="generator" content="ExDoc v0.38.2">
+ <meta name="project" content="arrow v0.1.0">
+
+
+ <title>Overview — arrow v0.1.0</title>
+
+ <link rel="stylesheet" href="dist/html-erlang-DQDXQC7W.css" />
+
+ <script defer src="dist/sidebar_items-DDBC4286.js"></script>
+ <script defer src="docs_config.js"></script>
+ <script defer src="dist/html-DPJLHKSM.js"></script>
+
+ </head>
+ <body>
+ <script>(()=>{var t="ex_doc:settings",e="dark";var o="dark",s="light";var E="sidebar_state",n="closed";var r="sidebar_width";var a="sidebar-open";var i=new URLSearchParams(window.location.search),S=i.get("theme")||JSON.parse(localStorage.getItem(t)||"{}").theme;(S===o||S!==s&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&document.body.classList.add(e);var d=sessionStorage.getItem(E),A=d!==n&&!window.matchMedia(`screen and (max-width: ${768}px)`).matches;document.body.cl [...]
+</script>
+
+<div class="body-wrapper">
+
+<button id="sidebar-menu" class="sidebar-button sidebar-toggle" aria-label="toggle sidebar" aria-controls="sidebar">
+ <i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i>
+</button>
+
+<nav id="sidebar" class="sidebar">
+
+ <div class="sidebar-header">
+ <div class="sidebar-projectInfo">
+
+ <div>
+ <a href="https://github.com/apache/arrow-erlang" class="sidebar-projectName" translate="no">
+arrow
+ </a>
+ <div class="sidebar-projectVersion" translate="no">
+ v0.1.0
+ </div>
+ </div>
+ </div>
+ <ul id="sidebar-list-nav" class="sidebar-list-nav" role="tablist" data-extras=""></ul>
+ </div>
+</nav>
+
+<output role="status" id="toast"></output>
+
+<main class="content page-extra" id="main" data-type="extras">
+ <div id="content" class="content-inner">
+ <div class="top-search">
+ <div class="search-settings">
+ <form class="search-bar" action="search.html">
+ <label class="search-label">
+ <span class="sr-only">Search documentation of arrow</span>
+ <input name="q" type="text" class="search-input" placeholder="Press / to search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
+ </label>
+ <button type="submit" class="search-button" aria-label="Submit Search" tabindex="-1">
+ <i class="ri-search-2-line ri-lg" aria-hidden="true"></i>
+ </button>
+ <button type="button" tabindex="-1" class="search-close-button" aria-hidden="true">
+ <i class="ri-close-line ri-lg" title="Cancel search"></i>
+ </button>
+ </form>
+ <div class="autocomplete">
+ </div>
+ <button class="icon-settings display-settings">
+ <i class="ri-settings-3-line"></i>
+ <span class="sr-only">Settings</span>
+ </button>
+ </div>
+ </div>
+
+<div id="top-content">
+ <div class="heading-with-actions top-heading">
+ <h1>arrow-erlang</h1>
+
+
+ <a href="https://github.com/apache/arrow-erlang/blob/v0.1.0/README.md#L1" title="View Source" class="icon-action" rel="help">
+ <i class="ri-code-s-slash-line" aria-hidden="true"></i>
+ <span class="sr-only">View Source</span>
+ </a>
+
+ </div>
+
+
+<p>Erlang implementation of the <a href="https://arrow.apache.org/">Apache Arrow</a> in-memory
+columnar format.</p><p>As of right now, <code class="inline">arrow-erlang</code> only provides serialization (write) of Erlang
+data structures into to Arrow. Support for deserialization (read) will be added
+soon.</p><p>We provide support for the <a href="https://arrow.apache.org/docs/format/Columnar.html#physical-memory-layout">Apache Arrow Columnar
+Format</a>
+and the <a href="https://arrow.apache.org/docs/format/Columnar.html#serialization-and-interprocess-communication-ipc">Apache Arrow IPC
+Format</a>.
+Support for <a href="https://arrow.apache.org/docs/format/Flight.html">Flight RPC</a>,
+<a href="https://arrow.apache.org/docs/format/FlightSql.html">Flight SQL</a>, as well
+conversion of Arrow into other formats like <a href="https://parquet.apache.org/">Apache
+Parquet</a>, <a href="https://avro.apache.org/">Apache Avro</a>,
+CSV and JSON is out of the scope of the project.</p><h2 id="build" class="section-heading"><a href="#build" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i></a><span class="text">Build</span></h2><p>In addition to an Erlang installation, you will need a Rust installation with
+<code class="inline">cargo</code>. You can then add the following to your rebar.config:</p><pre><code class="makeup erlang" translate="no"><span class="p" data-group-id="6677004767-1">{</span><span class="ss">arrow</span><span class="p">,</span><span class="w"> </span><span class="p" data-group-id="6677004767-2">{</span><span class="ss">git</span><span class="p">,</span><span class="w"> </span><span class="s">"https://github.com/apache/arrow-erlang.git"</span><span class="p" da [...]
+</span></code></pre><h2 id="format-support" class="section-heading"><a href="#format-support" class="hover-link"><i class="ri-link-m" aria-hidden="true"></i></a><span class="text">Format Support</span></h2><p>This implementation is still a work in progress. As mentioned earlier, we do not
+have read functionality as of right now, only write.</p><p>We support the following primitive data types:</p><ul><li>Int 8/16/32/64</li><li>UInt 8/16/32/64</li><li>Float 32/64</li><li>Fixed Size Binary</li><li>Binary</li><li>Large Binary</li></ul><p>and the following nested data types:</p><ul><li>Fixed Size List</li><li>List</li><li>Large List</li></ul><p>support for the other data types (both primitive and nested) will be added soon.</p><h2 id="ipc-format-support" class="section-heading [...]
+
+</div>
+
+<div class="bottom-actions" id="bottom-actions">
+ <div class="bottom-actions-item">
+
+ </div>
+ <div class="bottom-actions-item">
+
+ <a href="license.html" class="bottom-actions-button" rel="next">
+ <span class="subheader">
+ Next Page →
+ </span>
+ <span class="title">
+License
+ </span>
+ </a>
+
+ </div>
+</div>
+ <footer class="footer">
+ <p>
+
+ <span class="line">
+ <a href="https://hex.pm/packages/arrow/0.1.0" class="footer-hex-package">Hex Package</a>
+
+ <a href="https://preview.hex.pm/preview/arrow/0.1.0">Hex Preview</a>
+
+ (<a href="https://preview.hex.pm/preview/arrow/0.1.0/show/README.md">current file</a>)
+
+ </span>
+
+ <span class="line">
+ <button class="a-main footer-button display-quick-switch" title="Search HexDocs packages">
+ Search HexDocs
+ </button>
+
+ <a href="arrow.epub" title="ePub version">
+ Download ePub version
+ </a>
+
+ </span>
+ </p>
+
+ <p class="built-using">
+ Built using
+ <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.38.2) for the
+
+ <a href="https://erlang.org" title="Erlang" target="_blank" translate="no">Erlang programming language</a>
+
+ </p>
+
+ </footer>
+ </div>
+</main>
+</div>
+
+ </body>
+</html>
diff --git a/main/search.html b/main/search.html
new file mode 100644
index 0000000..99f7eb9
--- /dev/null
+++ b/main/search.html
@@ -0,0 +1,121 @@
+<!DOCTYPE html>
+<html lang="en">
+ <head>
+ <meta charset="utf-8">
+ <meta http-equiv="x-ua-compatible" content="ie=edge">
+ <meta name="viewport" content="width=device-width, initial-scale=1.0">
+ <meta name="generator" content="ExDoc v0.38.2">
+ <meta name="project" content="arrow v0.1.0">
+
+
+ <meta name="robots" content="noindex">
+
+ <title>Search — arrow v0.1.0</title>
+
+ <link rel="stylesheet" href="dist/html-erlang-DQDXQC7W.css" />
+
+ <script defer src="dist/sidebar_items-DDBC4286.js"></script>
+ <script defer src="docs_config.js"></script>
+ <script defer src="dist/html-DPJLHKSM.js"></script>
+
+ </head>
+ <body>
+ <script>(()=>{var t="ex_doc:settings",e="dark";var o="dark",s="light";var E="sidebar_state",n="closed";var r="sidebar_width";var a="sidebar-open";var i=new URLSearchParams(window.location.search),S=i.get("theme")||JSON.parse(localStorage.getItem(t)||"{}").theme;(S===o||S!==s&&window.matchMedia("(prefers-color-scheme: dark)").matches)&&document.body.classList.add(e);var d=sessionStorage.getItem(E),A=d!==n&&!window.matchMedia(`screen and (max-width: ${768}px)`).matches;document.body.cl [...]
+</script>
+
+<div class="body-wrapper">
+
+<button id="sidebar-menu" class="sidebar-button sidebar-toggle" aria-label="toggle sidebar" aria-controls="sidebar">
+ <i class="ri-menu-line ri-lg" title="Collapse/expand sidebar"></i>
+</button>
+
+<nav id="sidebar" class="sidebar">
+
+ <div class="sidebar-header">
+ <div class="sidebar-projectInfo">
+
+ <div>
+ <a href="https://github.com/apache/arrow-erlang" class="sidebar-projectName" translate="no">
+arrow
+ </a>
+ <div class="sidebar-projectVersion" translate="no">
+ v0.1.0
+ </div>
+ </div>
+ </div>
+ <ul id="sidebar-list-nav" class="sidebar-list-nav" role="tablist" data-extras=""></ul>
+ </div>
+</nav>
+
+<output role="status" id="toast"></output>
+
+<main class="content page-search" id="main" data-type="search">
+ <div id="content" class="content-inner">
+ <div class="top-search">
+ <div class="search-settings">
+ <form class="search-bar" action="search.html">
+ <label class="search-label">
+ <span class="sr-only">Search documentation of arrow</span>
+ <input name="q" type="text" class="search-input" placeholder="Press / to search" autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false" />
+ </label>
+ <button type="submit" class="search-button" aria-label="Submit Search" tabindex="-1">
+ <i class="ri-search-2-line ri-lg" aria-hidden="true"></i>
+ </button>
+ <button type="button" tabindex="-1" class="search-close-button" aria-hidden="true">
+ <i class="ri-close-line ri-lg" title="Cancel search"></i>
+ </button>
+ </form>
+ <div class="autocomplete">
+ </div>
+ <button class="icon-settings display-settings">
+ <i class="ri-settings-3-line"></i>
+ <span class="sr-only">Settings</span>
+ </button>
+ </div>
+ </div>
+
+<div id="search">
+ <h1>
+ <span></span>
+ </h1>
+
+ <div class="loading"><div></div><div></div><div></div><div></div></div>
+</div>
+<script src="dist/search_data-BE868044.js"></script>
+ <footer class="footer">
+ <p>
+
+ <span class="line">
+ <a href="https://hex.pm/packages/arrow/0.1.0" class="footer-hex-package">Hex Package</a>
+
+ <a href="https://preview.hex.pm/preview/arrow/0.1.0">Hex Preview</a>
+
+ </span>
+
+ <span class="line">
+ <button class="a-main footer-button display-quick-switch" title="Search HexDocs packages">
+ Search HexDocs
+ </button>
+
+ <a href="arrow.epub" title="ePub version">
+ Download ePub version
+ </a>
+
+ </span>
+ </p>
+
+ <p class="built-using">
+ Built using
+ <a href="https://github.com/elixir-lang/ex_doc" title="ExDoc" target="_blank" rel="help noopener" translate="no">ExDoc</a> (v0.38.2) for the
+
+ <a href="https://erlang.org" title="Erlang" target="_blank" translate="no">Erlang programming language</a>
+
+ </p>
+
+ </footer>
+ </div>
+</main>
+</div>
+
+ </body>
+</html>