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 2022/10/07 18:53:00 UTC

[arrow-nanoarrow] branch gh-pages updated: update documentation for tag dev

This is an automated email from the ASF dual-hosted git repository.

github-bot pushed a commit to branch gh-pages
in repository https://gitbox.apache.org/repos/asf/arrow-nanoarrow.git


The following commit(s) were added to refs/heads/gh-pages by this push:
     new fcdc6ec  update documentation for tag dev
fcdc6ec is described below

commit fcdc6ec97e2839f23ccf8d0233388e9f83bb92c4
Author: GitHub Actions <ac...@github.com>
AuthorDate: Fri Oct 7 18:52:56 2022 +0000

    update documentation for tag dev
---
 dev/_sources/c.rst.txt                         |   59 +-
 dev/_sources/index.rst.txt                     |   12 +-
 dev/_static/scripts/pydata-sphinx-theme.js     |    4 +-
 dev/_static/styles/pydata-sphinx-theme.css     |    2 +-
 dev/_static/webpack-macros.html                |   10 +-
 dev/c.html                                     | 1685 +++++++++++++++++-------
 dev/genindex.html                              |  234 +++-
 dev/index.html                                 |  202 ++-
 dev/objects.inv                                |  Bin 5807 -> 8856 bytes
 dev/r/index.html                               |   34 +-
 dev/r/pkgdown.yml                              |    2 +-
 dev/r/reference/as_nanoarrow_array.html        |   10 +-
 dev/r/reference/as_nanoarrow_array_stream.html |   12 +-
 dev/r/reference/as_nanoarrow_schema.html       |    6 +-
 dev/r/reference/nanoarrow_build_id.html        |    2 +-
 dev/r/search.json                              |    2 +-
 dev/search.html                                |   59 +-
 dev/searchindex.js                             |    2 +-
 18 files changed, 1691 insertions(+), 646 deletions(-)

diff --git a/dev/_sources/c.rst.txt b/dev/_sources/c.rst.txt
index 6981169..9bed1c8 100644
--- a/dev/_sources/c.rst.txt
+++ b/dev/_sources/c.rst.txt
@@ -15,11 +15,62 @@
 .. specific language governing permissions and limitations
 .. under the License.
 
-C API
+C API Reference
 ==================
 
-nanoarrow.h
+Creating schemas
 ------------------
+.. doxygengroup:: nanoarrow-schema
+   :members:
 
-.. doxygenfile:: nanoarrow.h
-   :project: nanoarrow_c
+Reading schemas
+------------------
+.. doxygengroup:: nanoarrow-schema-view
+   :members:
+
+Creating arrays
+------------------
+.. doxygengroup:: nanoarrow-array
+   :members:
+
+Reading arrays
+------------------
+.. doxygengroup:: nanoarrow-array-view
+   :members:
+
+Owning, growable buffers
+------------------------
+.. doxygengroup:: nanoarrow-buffer
+   :members:
+
+Bitmap utilities
+------------------
+.. doxygengroup:: nanoarrow-bitmap
+   :members:
+
+Create, read, and modify schema metadata
+----------------------------------------
+.. doxygengroup:: nanoarrow-metadata
+   :members:
+
+Memory management 
+------------------
+.. doxygengroup:: nanoarrow-malloc
+   :members:
+
+Error handling 
+------------------
+.. doxygengroup:: nanoarrow-errors
+   :members:
+
+Utility data structures
+-----------------------
+.. doxygengroup:: nanoarrow-utils
+   :members:
+
+Arrow C Data Interface
+----------------------
+
+.. doxygengroup:: nanoarrow-arrow-cdata
+   :members:
+   :undoc-members:
diff --git a/dev/_sources/index.rst.txt b/dev/_sources/index.rst.txt
index fb369f8..567d0e9 100644
--- a/dev/_sources/index.rst.txt
+++ b/dev/_sources/index.rst.txt
@@ -15,16 +15,12 @@
 .. specific language governing permissions and limitations
 .. under the License.
 
-nanoarrow
-============
+.. include:: README_generated.rst
 
-The nanoarrow library is a C library providing helpers to generate and
-interpret `Arrow C Data interface <https://arrow.apache.org/docs/format/CDataInterface.html>`_
-and `Arrow C Array Stream interface <https://arrow.apache.org/docs/format/CStreamInterface.html>`_
-structures to facilitate producing and consuming data using `Apache Arrow <https://arrow.apache.org>`_.
+Contents
+--------
 
 .. toctree::
    :maxdepth: 2
-   :caption: Contents:
 
-   C API <c>
+   C API Reference <c>
diff --git a/dev/_static/scripts/pydata-sphinx-theme.js b/dev/_static/scripts/pydata-sphinx-theme.js
index 22707d9..adb90bd 100644
--- a/dev/_static/scripts/pydata-sphinx-theme.js
+++ b/dev/_static/scripts/pydata-sphinx-theme.js
@@ -23,10 +23,10 @@
  * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
  * SOFTWARE.
  */
-var n="undefined"!=typeof window&&"undefined"!=typeof document&&"undefined"!=typeof navigator,i=function(){for(var e=["Edge","Trident","Firefox"],t=0;t<e.length;t+=1)if(n&&navigator.userAgent.indexOf(e[t])>=0)return 1;return 0}();var o=n&&window.Promise?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then((function(){t=!1,e()})))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout((function(){t=!1,e()}),i))}};function r(e){return e&&"[object Function]"== [...]
+var n="undefined"!=typeof window&&"undefined"!=typeof document&&"undefined"!=typeof navigator,i=function(){for(var e=["Edge","Trident","Firefox"],t=0;t<e.length;t+=1)if(n&&navigator.userAgent.indexOf(e[t])>=0)return 1;return 0}();var o=n&&window.Promise?function(e){var t=!1;return function(){t||(t=!0,window.Promise.resolve().then((function(){t=!1,e()})))}}:function(e){var t=!1;return function(){t||(t=!0,setTimeout((function(){t=!1,e()}),i))}};function r(e){return e&&"[object Function]"== [...]
 /*!
   * Bootstrap v4.6.1 (https://getbootstrap.com/)
   * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
   */
-!function(e,t,n){"use strict";function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=i(t),r=i(n);function a(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function s(e,t,n){return t&&a(e.prototype,t),n&&a(e,n),e}function l(){return(l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnPropert [...]
\ No newline at end of file
+!function(e,t,n){"use strict";function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var o=i(t),r=i(n);function a(e,t){for(var n=0;n<t.length;n++){var i=t[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function s(e,t,n){return t&&a(e.prototype,t),n&&a(e,n),e}function l(){return(l=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var i in n)Object.prototype.hasOwnPropert [...]
\ No newline at end of file
diff --git a/dev/_static/styles/pydata-sphinx-theme.css b/dev/_static/styles/pydata-sphinx-theme.css
index 7459d22..fe09ca6 100644
--- a/dev/_static/styles/pydata-sphinx-theme.css
+++ b/dev/_static/styles/pydata-sphinx-theme.css
@@ -3,4 +3,4 @@
  * Copyright 2011-2021 The Bootstrap Authors
  * Copyright 2011-2021 Twitter, Inc.
  * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
- */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:540px;--breakpoint-md:720px;--breakpoint-lg:960px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-s [...]
\ No newline at end of file
+ */:root{--blue:#007bff;--indigo:#6610f2;--purple:#6f42c1;--pink:#e83e8c;--red:#dc3545;--orange:#fd7e14;--yellow:#ffc107;--green:#28a745;--teal:#20c997;--cyan:#17a2b8;--white:#fff;--gray:#6c757d;--gray-dark:#343a40;--primary:#007bff;--secondary:#6c757d;--success:#28a745;--info:#17a2b8;--warning:#ffc107;--danger:#dc3545;--light:#f8f9fa;--dark:#343a40;--breakpoint-xs:0;--breakpoint-sm:540px;--breakpoint-md:720px;--breakpoint-lg:960px;--breakpoint-xl:1200px;--font-family-sans-serif:-apple-s [...]
\ No newline at end of file
diff --git a/dev/_static/webpack-macros.html b/dev/_static/webpack-macros.html
index c0ae13d..c90a6f3 100644
--- a/dev/_static/webpack-macros.html
+++ b/dev/_static/webpack-macros.html
@@ -10,20 +10,22 @@
     href="{{ pathto('_static/vendor/fontawesome/6.1.2/webfonts/fa-solid-900.woff2', 1) }}">
   <link rel="preload" as="font" type="font/woff2" crossorigin
     href="{{ pathto('_static/vendor/fontawesome/6.1.2/webfonts/fa-brands-400.woff2', 1) }}">
+  <link rel="preload" as="font" type="font/woff2" crossorigin
+    href="{{ pathto('_static/vendor/fontawesome/6.1.2/webfonts/fa-regular-400.woff2', 1) }}">
 {% endmacro %}
 
 {% macro head_pre_assets() %}
   <!-- Loaded before other Sphinx assets -->
-  <link href="{{ pathto('_static/styles/theme.css', 1) }}?digest=9b1a4fa89bdd0e95b23b" rel="stylesheet">
-<link href="{{ pathto('_static/styles/pydata-sphinx-theme.css', 1) }}?digest=9b1a4fa89bdd0e95b23b" rel="stylesheet">
+  <link href="{{ pathto('_static/styles/theme.css', 1) }}?digest=1e1de1a1873e13ef5536" rel="stylesheet">
+<link href="{{ pathto('_static/styles/pydata-sphinx-theme.css', 1) }}?digest=1e1de1a1873e13ef5536" rel="stylesheet">
 {% endmacro %}
 
 {% macro head_js_preload() %}
   <!-- Pre-loaded scripts that we'll load fully later -->
-  <link rel="preload" as="script" href="{{ pathto('_static/scripts/pydata-sphinx-theme.js', 1) }}?digest=9b1a4fa89bdd0e95b23b">
+  <link rel="preload" as="script" href="{{ pathto('_static/scripts/pydata-sphinx-theme.js', 1) }}?digest=1e1de1a1873e13ef5536">
 {% endmacro %}
 
 {% macro body_post() %}
   <!-- Scripts loaded after <body> so the DOM is not blocked -->
-  <script src="{{ pathto('_static/scripts/pydata-sphinx-theme.js', 1) }}?digest=9b1a4fa89bdd0e95b23b"></script>
+  <script src="{{ pathto('_static/scripts/pydata-sphinx-theme.js', 1) }}?digest=1e1de1a1873e13ef5536"></script>
 {% endmacro %}
\ No newline at end of file
diff --git a/dev/c.html b/dev/c.html
index fb4d7ec..26c493d 100644
--- a/dev/c.html
+++ b/dev/c.html
@@ -6,15 +6,15 @@
     <meta charset="utf-8" />
     <meta name="viewport" content="width=device-width, initial-scale=1.0" /><meta name="generator" content="Docutils 0.19: https://docutils.sourceforge.io/" />
 
-    <title>C API &#8212; nanoarrow  documentation</title>
+    <title>C API Reference &#8212; nanoarrow  documentation</title>
   <script>
     document.documentElement.dataset.mode = localStorage.getItem("mode") || "";
     document.documentElement.dataset.theme = localStorage.getItem("theme") || "light";
   </script>
   
   <!-- Loaded before other Sphinx assets -->
-  <link href="_static/styles/theme.css?digest=9b1a4fa89bdd0e95b23b" rel="stylesheet">
-<link href="_static/styles/pydata-sphinx-theme.css?digest=9b1a4fa89bdd0e95b23b" rel="stylesheet">
+  <link href="_static/styles/theme.css?digest=1e1de1a1873e13ef5536" rel="stylesheet">
+<link href="_static/styles/pydata-sphinx-theme.css?digest=1e1de1a1873e13ef5536" rel="stylesheet">
 
   
   <link rel="stylesheet"
@@ -23,11 +23,13 @@
     href="_static/vendor/fontawesome/6.1.2/webfonts/fa-solid-900.woff2">
   <link rel="preload" as="font" type="font/woff2" crossorigin
     href="_static/vendor/fontawesome/6.1.2/webfonts/fa-brands-400.woff2">
+  <link rel="preload" as="font" type="font/woff2" crossorigin
+    href="_static/vendor/fontawesome/6.1.2/webfonts/fa-regular-400.woff2">
 
     <link rel="stylesheet" type="text/css" href="_static/pygments.css" />
   
   <!-- Pre-loaded scripts that we'll load fully later -->
-  <link rel="preload" as="script" href="_static/scripts/pydata-sphinx-theme.js?digest=9b1a4fa89bdd0e95b23b">
+  <link rel="preload" as="script" href="_static/scripts/pydata-sphinx-theme.js?digest=1e1de1a1873e13ef5536">
 
     <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
     <script src="_static/jquery.js"></script>
@@ -60,7 +62,7 @@
     <div class="search-button__search-container">
       
 <form class="bd-search d-flex align-items-center" action="search.html" method="get">
-  <i class="icon fas fa-search"></i>
+  <i class="fa-solid fa-magnifying-glass"></i>
   <input type="search" class="form-control" name="q" id="search-input" placeholder="Search the docs ..." aria-label="Search the docs ..." autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false">
   <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd>K</kbd></span>
 </form>
@@ -70,7 +72,7 @@
   
   <nav class="bd-header navbar navbar-expand-lg bd-navbar" id="navbar-main"><div class="bd-header__inner bd-page-width">
   <label class="sidebar-toggle primary-toggle" for="__primary">
-      <span class="fas fa-bars"></span>
+      <span class="fa-solid fa-bars"></span>
   </label>
   <div id="navbar-start">
     
@@ -109,13 +111,13 @@
         
                 <li class="nav-item current active">
                     <a class="nav-link" href="#">
-                        C API
+                        C API Reference
                     </a>
                 </li>
                 
 
             <li class="nav-item">
-                <a class="nav-link nav-external" href="r/index.html">R API<i class="fas fa-external-link-alt"></i></a>
+                <a class="nav-link nav-external" href="r/index.html">R Package<i class="fa-solid fa-up-right-from-square"></i></a>
             </li>
     </ul>
 </nav>
@@ -126,16 +128,16 @@
     <div id="navbar-end">
       <div class="navbar-end-item navbar-end__search-button-container">
         
-<button class="btn btn-sm navbar-btn search-button search-button__button" title="Search">
-  <i class="fas fa-search"></i>
+<button class="btn btn-sm navbar-btn search-button search-button__button" title="Search" data-toggle="tooltip">
+  <i class="fa-solid fa-magnifying-glass"></i>
 </button>
       </div>
       
       <div class="navbar-end-item">
-        <span class="theme-switch-button btn btn-sm btn-outline-primary navbar-btn rounded-circle">
-    <a class="theme-switch" data-mode="light"><i class="fas fa-sun"></i></a>
-    <a class="theme-switch" data-mode="dark"><i class="far fa-moon"></i></a>
-    <a class="theme-switch" data-mode="auto"><i class="fas fa-adjust"></i></a>
+        <span class="theme-switch-button btn btn-sm btn-outline-primary navbar-btn rounded-circle" title="light/dark" data-toggle="tooltip">
+    <a class="theme-switch" data-mode="light"><i class="fa-solid fa-sun"></i></a>
+    <a class="theme-switch" data-mode="dark"><i class="fa-regular fa-moon"></i></a>
+    <a class="theme-switch" data-mode="auto"><i class="fa-solid fa-circle-half-stroke"></i></a>
 </span>
       </div>
       
@@ -150,14 +152,14 @@
 
   
   <div class="search-button-container--mobile">
-<button class="btn btn-sm navbar-btn search-button search-button__button" title="Search">
-  <i class="fas fa-search"></i>
+<button class="btn btn-sm navbar-btn search-button search-button__button" title="Search" data-toggle="tooltip">
+  <i class="fa-solid fa-magnifying-glass"></i>
 </button>
   </div>
 
   
   <label class="sidebar-toggle secondary-toggle" for="__secondary">
-      <span class="fas fa-outdent"></span>
+      <span class="fa-solid fa-outdent"></span>
   </label>
   
 
@@ -185,13 +187,13 @@
         
                 <li class="nav-item current active">
                     <a class="nav-link" href="#">
-                        C API
+                        C API Reference
                     </a>
                 </li>
                 
 
             <li class="nav-item">
-                <a class="nav-link nav-external" href="r/index.html">R API<i class="fas fa-external-link-alt"></i></a>
+                <a class="nav-link nav-external" href="r/index.html">R Package<i class="fa-solid fa-up-right-from-square"></i></a>
             </li>
     </ul>
 </nav>
@@ -205,10 +207,10 @@
     <div class="sidebar-header-items__end">
       
       <div class="navbar-end-item">
-        <span class="theme-switch-button btn btn-sm btn-outline-primary navbar-btn rounded-circle">
-    <a class="theme-switch" data-mode="light"><i class="fas fa-sun"></i></a>
-    <a class="theme-switch" data-mode="dark"><i class="far fa-moon"></i></a>
-    <a class="theme-switch" data-mode="auto"><i class="fas fa-adjust"></i></a>
+        <span class="theme-switch-button btn btn-sm btn-outline-primary navbar-btn rounded-circle" title="light/dark" data-toggle="tooltip">
+    <a class="theme-switch" data-mode="light"><i class="fa-solid fa-sun"></i></a>
+    <a class="theme-switch" data-mode="dark"><i class="fa-regular fa-moon"></i></a>
+    <a class="theme-switch" data-mode="auto"><i class="fa-solid fa-circle-half-stroke"></i></a>
 </span>
       </div>
       
@@ -225,7 +227,7 @@
   <div class="sidebar-start-items sidebar-primary__section">
     <div class="sidebar-start-items__item">
 <form class="bd-search d-flex align-items-center" action="search.html" method="get">
-  <i class="icon fas fa-search"></i>
+  <i class="fa-solid fa-magnifying-glass"></i>
   <input type="search" class="form-control" name="q" id="search-input" placeholder="Search the docs ..." aria-label="Search the docs ..." autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false">
   <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd>K</kbd></span>
 </form>
@@ -253,804 +255,1430 @@
             
             <article class="bd-article" role="main">
               
-  <section id="c-api">
-<h1>C API<a class="headerlink" href="#c-api" title="Permalink to this heading">#</a></h1>
-<section id="nanoarrow-h">
-<h2>nanoarrow.h<a class="headerlink" href="#nanoarrow-h" title="Permalink to this heading">#</a></h2>
-<div class="breathe-sectiondef docutils container">
-<p class="breathe-sectiondef-title rubric" id="breathe-section-title-enums">Enums</p>
-<dl class="cpp enum">
-<dt class="sig sig-object cpp" id="_CPPv413ArrowTimeUnit">
-<span id="_CPPv313ArrowTimeUnit"></span><span id="_CPPv213ArrowTimeUnit"></span><span class="target" id="nanoarrow_8h_1a7048580e7cf78a7d6baac47a6b39e1ac"></span><span class="k"><span class="pre">enum</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowTimeUnit</span></span></span><a class="headerlink" href="#_CPPv413ArrowTimeUnit" title="Permalink to this definition">#</a><br /></dt>
-<dd><p>Arrow time unit enumerator. </p>
-<p>These names and values map to the corresponding arrow::TimeUnit::type enumerator. </p>
-<p><em>Values:</em></p>
-<dl class="cpp enumerator">
-<dt class="sig sig-object cpp" id="_CPPv4N13ArrowTimeUnit26NANOARROW_TIME_UNIT_SECONDE">
-<span id="_CPPv3N13ArrowTimeUnit26NANOARROW_TIME_UNIT_SECONDE"></span><span id="_CPPv2N13ArrowTimeUnit26NANOARROW_TIME_UNIT_SECONDE"></span><span class="target" id="nanoarrow_8h_1a7048580e7cf78a7d6baac47a6b39e1aca5bc21e6c8d406c9c36da2ba85663cd73"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TIME_UNIT_SECOND</span></span></span><a class="headerlink" href="#_CPPv4N13Arrow [...]
-<dd></dd></dl>
-
-<dl class="cpp enumerator">
-<dt class="sig sig-object cpp" id="_CPPv4N13ArrowTimeUnit25NANOARROW_TIME_UNIT_MILLIE">
-<span id="_CPPv3N13ArrowTimeUnit25NANOARROW_TIME_UNIT_MILLIE"></span><span id="_CPPv2N13ArrowTimeUnit25NANOARROW_TIME_UNIT_MILLIE"></span><span class="target" id="nanoarrow_8h_1a7048580e7cf78a7d6baac47a6b39e1aca63ca1ac70e0f7da665d53091e355a6e7"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TIME_UNIT_MILLI</span></span></span><a class="headerlink" href="#_CPPv4N13ArrowTim [...]
-<dd></dd></dl>
-
-<dl class="cpp enumerator">
-<dt class="sig sig-object cpp" id="_CPPv4N13ArrowTimeUnit25NANOARROW_TIME_UNIT_MICROE">
-<span id="_CPPv3N13ArrowTimeUnit25NANOARROW_TIME_UNIT_MICROE"></span><span id="_CPPv2N13ArrowTimeUnit25NANOARROW_TIME_UNIT_MICROE"></span><span class="target" id="nanoarrow_8h_1a7048580e7cf78a7d6baac47a6b39e1aca1592fff76ca5a4dd006b9e7e375d2885"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TIME_UNIT_MICRO</span></span></span><a class="headerlink" href="#_CPPv4N13ArrowTim [...]
-<dd></dd></dl>
-
-<dl class="cpp enumerator">
-<dt class="sig sig-object cpp" id="_CPPv4N13ArrowTimeUnit24NANOARROW_TIME_UNIT_NANOE">
-<span id="_CPPv3N13ArrowTimeUnit24NANOARROW_TIME_UNIT_NANOE"></span><span id="_CPPv2N13ArrowTimeUnit24NANOARROW_TIME_UNIT_NANOE"></span><span class="target" id="nanoarrow_8h_1a7048580e7cf78a7d6baac47a6b39e1acaae0643d5e56d7feb6415a4b7cd36f2be"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TIME_UNIT_NANO</span></span></span><a class="headerlink" href="#_CPPv4N13ArrowTimeUn [...]
-<dd></dd></dl>
-
-</dd></dl>
-
-</div>
+  <section id="c-api-reference">
+<h1>C API Reference<a class="headerlink" href="#c-api-reference" title="Permalink to this heading">#</a></h1>
+<section id="creating-schemas">
+<h2>Creating schemas<a class="headerlink" href="#creating-schemas" title="Permalink to this heading">#</a></h2>
+<dl>
+<dt class="sig sig-object cpp">
+<span class="target" id="group__nanoarrow-schema"></span><em><span class="pre">group</span></em> <span class="sig-name descname"><span class="pre">nanoarrow-schema</span></span></dt>
+<dd><p>These functions allocate, copy, and destroy ArrowSchema structures. </p>
 <div class="breathe-sectiondef docutils container">
 <p class="breathe-sectiondef-title rubric" id="breathe-section-title-functions">Functions</p>
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv411ArrowMalloc7int64_t">
-<span id="_CPPv311ArrowMalloc7int64_t"></span><span id="_CPPv211ArrowMalloc7int64_t"></span><span id="ArrowMalloc__int64_t"></span><span class="target" id="nanoarrow_8h_1ab05bc897baadee2d140b5bea9a846f7b"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">ArrowMalloc</span></span></span><span class="sig-paren">(</span><span class="n"><span cl [...]
-<dd><p>Allocate like malloc() </p>
-</dd></dl>
-
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv412ArrowReallocPv7int64_t">
-<span id="_CPPv312ArrowReallocPv7int64_t"></span><span id="_CPPv212ArrowReallocPv7int64_t"></span><span id="ArrowRealloc__voidP.int64_t"></span><span class="target" id="nanoarrow_8h_1a3ae6c5f200450ea143c24613f4d115ac"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">ArrowRealloc</span></span></span><span class="sig-paren">(</span><span clas [...]
-<dd><p>Reallocate like realloc() </p>
-</dd></dl>
-
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv49ArrowFreePv">
-<span id="_CPPv39ArrowFreePv"></span><span id="_CPPv29ArrowFreePv"></span><span id="ArrowFree__voidP"></span><span class="target" id="nanoarrow_8h_1aa9552e61d8cce6520ef578d0c8c73860"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowFree</span></span></span><span class="sig-paren">(</span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><spa [...]
-<dd><p>Free a pointer allocated using ArrowMalloc() or ArrowRealloc(). </p>
-</dd></dl>
-
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv427ArrowBufferAllocatorDefaultv">
-<span id="_CPPv327ArrowBufferAllocatorDefaultv"></span><span id="_CPPv227ArrowBufferAllocatorDefaultv"></span><span id="ArrowBufferAllocatorDefault"></span><span class="target" id="nanoarrow_8h_1a6a51426f49cc209e7488c93d39ca5b45"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowBufferAllocator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowBufferAllocato [...]
-<dd><p>Return the default allocator. </p>
-<p>The default allocator uses ArrowMalloc(), ArrowRealloc(), and ArrowFree(). </p>
-</dd></dl>
-
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv422ArrowBufferDeallocatorPFvP20ArrowBufferAllocatorP7uint8_t7int64_tEPv">
-<span id="_CPPv322ArrowBufferDeallocatorPFvP20ArrowBufferAllocatorP7uint8_t7int64_tEPv"></span><span id="_CPPv222ArrowBufferDeallocatorPFvP20ArrowBufferAllocatorP7uint8_t7int64_tEPv"></span><span class="target" id="nanoarrow_8h_1a47bb3e6551ae911f2a7a084724617099"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowBufferAllocator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><sp [...]
-<dd><p>Create a custom deallocator. </p>
-<p>Creates a buffer allocator with only a free method that can be used to attach a custom deallocator to an ArrowBuffer. This may be used to avoid copying an existing buffer that was not allocated using the infrastructure provided here (e.g., by an R or Python object). </p>
-</dd></dl>
-
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv413ArrowErrorSetP10ArrowErrorPKcz">
-<span id="_CPPv313ArrowErrorSetP10ArrowErrorPKcz"></span><span id="_CPPv213ArrowErrorSetP10ArrowErrorPKcz"></span><span id="ArrowErrorSet__ArrowErrorP.cCP.z"></span><span class="target" id="nanoarrow_8h_1a505469650d679b2fa680f31bdbc457cd"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowErrorSet</span></span></span><span class="sig-paren">(</span><span class="k"><span class= [...]
-<dd><p>Set the contents of an error using printf syntax. </p>
-</dd></dl>
-
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv417ArrowErrorMessageP10ArrowError">
-<span id="_CPPv317ArrowErrorMessageP10ArrowError"></span><span id="_CPPv217ArrowErrorMessageP10ArrowError"></span><span id="ArrowErrorMessage__ArrowErrorP"></span><span class="target" id="nanoarrow_8h_1aefec4255da8f1a584c6fc8ef357d7b13"></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class=" [...]
-<dd><p>Get the contents of an error. </p>
-</dd></dl>
-
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv421ArrowNanoarrowBuildIdv">
-<span id="_CPPv321ArrowNanoarrowBuildIdv"></span><span id="_CPPv221ArrowNanoarrowBuildIdv"></span><span id="ArrowNanoarrowBuildId"></span><span class="target" id="nanoarrow_8h_1a44b48aa464ce0b856709965124eb6a29"></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">Arro [...]
-<dd><p>Return the build id against which the library was compiled. </p>
-</dd></dl>
-
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv415ArrowLayoutInitP11ArrowLayout9ArrowType">
-<span id="_CPPv315ArrowLayoutInitP11ArrowLayout9ArrowType"></span><span id="_CPPv215ArrowLayoutInitP11ArrowLayout9ArrowType"></span><span id="ArrowLayoutInit__ArrowLayoutP.ArrowType"></span><span class="target" id="nanoarrow_8h_1ac1954fef441ad60b50e688b58ee04280"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowLayoutInit</span></span></span><span class="sig-paren">(</span><span clas [...]
-<dd><p>Initialize a description of buffer arrangements from a storage type. </p>
-</dd></dl>
-
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv413ArrowCharViewPKc">
-<span id="_CPPv313ArrowCharViewPKc"></span><span id="_CPPv213ArrowCharViewPKc"></span><span id="ArrowCharView__cCP"></span><span class="target" id="nanoarrow_8h_1a650e076b60473a35a18ff0bc52b51474"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowStringView</spa [...]
-<dd><p>Create a string view from a null-terminated string. </p>
-</dd></dl>
-
 <dl class="cpp function">
 <dt class="sig sig-object cpp" id="_CPPv415ArrowSchemaInitP11ArrowSchema9ArrowType">
-<span id="_CPPv315ArrowSchemaInitP11ArrowSchema9ArrowType"></span><span id="_CPPv215ArrowSchemaInitP11ArrowSchema9ArrowType"></span><span id="ArrowSchemaInit__ArrowSchemaP.ArrowType"></span><span class="target" id="nanoarrow_8h_1a0b6cd215e9ca7b1a4f88441d976774dc"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowSchemaInit</span></span></span><span class="sig-paren">(</span>< [...]
+<span id="_CPPv315ArrowSchemaInitP11ArrowSchema9ArrowType"></span><span id="_CPPv215ArrowSchemaInitP11ArrowSchema9ArrowType"></span><span id="ArrowSchemaInit__ArrowSchemaP.ArrowType"></span><span class="target" id="group__nanoarrow-schema_1ga0b6cd215e9ca7b1a4f88441d976774dc"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><span class="pre">ArrowErrorCode</span></span></a><span class="w"> </span><span class="sig-name descname"><sp [...]
 <dd><p>Initialize the fields of a schema. </p>
 <p>Initializes the fields and release callback of schema_out. Caller is responsible for calling the schema-&gt;release callback if NANOARROW_OK is returned. </p>
 </dd></dl>
 
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv419ArrowSchemaToStringP11ArrowSchemaPc7int64_tc">
+<span id="_CPPv319ArrowSchemaToStringP11ArrowSchemaPc7int64_tc"></span><span id="_CPPv219ArrowSchemaToStringP11ArrowSchemaPc7int64_tc"></span><span id="ArrowSchemaToString__ArrowSchemaP.cP.int64_t.c"></span><span class="target" id="group__nanoarrow-schema_1gac04b2acd1d7522377c4d2ea722e8ccf8"></span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowSchemaToString</span></span></span><span c [...]
+<dd><p>Get a human-readable summary of a Schema. </p>
+<p>Writes a summary of an ArrowSchema to out (up to n - 1 characters) and returns the number of characters required for the output if n were sufficiently large. If recursive is non-zero, the result will also include children. </p>
+</dd></dl>
+
 <dl class="cpp function">
 <dt class="sig sig-object cpp" id="_CPPv424ArrowSchemaInitFixedSizeP11ArrowSchema9ArrowType7int32_t">
-<span id="_CPPv324ArrowSchemaInitFixedSizeP11ArrowSchema9ArrowType7int32_t"></span><span id="_CPPv224ArrowSchemaInitFixedSizeP11ArrowSchema9ArrowType7int32_t"></span><span id="ArrowSchemaInitFixedSize__ArrowSchemaP.ArrowType.int32_t"></span><span class="target" id="nanoarrow_8h_1aae42dfd2a0647fa115f8c6bf55e6a901"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowSchemaInitFix [...]
+<span id="_CPPv324ArrowSchemaInitFixedSizeP11ArrowSchema9ArrowType7int32_t"></span><span id="_CPPv224ArrowSchemaInitFixedSizeP11ArrowSchema9ArrowType7int32_t"></span><span id="ArrowSchemaInitFixedSize__ArrowSchemaP.ArrowType.int32_t"></span><span class="target" id="group__nanoarrow-schema_1gaae42dfd2a0647fa115f8c6bf55e6a901"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><span class="pre">ArrowErrorCode</span></span></a><span cl [...]
 <dd><p>Initialize the fields of a fixed-size schema. </p>
 <p>Returns EINVAL for fixed_size &lt;= 0 or for data_type that is not NANOARROW_TYPE_FIXED_SIZE_BINARY or NANOARROW_TYPE_FIXED_SIZE_LIST. </p>
 </dd></dl>
 
 <dl class="cpp function">
 <dt class="sig sig-object cpp" id="_CPPv422ArrowSchemaInitDecimalP11ArrowSchema9ArrowType7int32_t7int32_t">
-<span id="_CPPv322ArrowSchemaInitDecimalP11ArrowSchema9ArrowType7int32_t7int32_t"></span><span id="_CPPv222ArrowSchemaInitDecimalP11ArrowSchema9ArrowType7int32_t7int32_t"></span><span id="ArrowSchemaInitDecimal__ArrowSchemaP.ArrowType.int32_t.int32_t"></span><span class="target" id="nanoarrow_8h_1a33ecf70ad7b6e651f803724297d07f4f"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre"> [...]
+<span id="_CPPv322ArrowSchemaInitDecimalP11ArrowSchema9ArrowType7int32_t7int32_t"></span><span id="_CPPv222ArrowSchemaInitDecimalP11ArrowSchema9ArrowType7int32_t7int32_t"></span><span id="ArrowSchemaInitDecimal__ArrowSchemaP.ArrowType.int32_t.int32_t"></span><span class="target" id="group__nanoarrow-schema_1ga33ecf70ad7b6e651f803724297d07f4f"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><span class="pre">ArrowErrorCode</span>< [...]
 <dd><p>Initialize the fields of a decimal schema. </p>
 <p>Returns EINVAL for scale &lt;= 0 or for data_type that is not NANOARROW_TYPE_DECIMAL128 or NANOARROW_TYPE_DECIMAL256. </p>
 </dd></dl>
 
 <dl class="cpp function">
 <dt class="sig sig-object cpp" id="_CPPv423ArrowSchemaInitDateTimeP11ArrowSchema9ArrowType13ArrowTimeUnitPKc">
-<span id="_CPPv323ArrowSchemaInitDateTimeP11ArrowSchema9ArrowType13ArrowTimeUnitPKc"></span><span id="_CPPv223ArrowSchemaInitDateTimeP11ArrowSchema9ArrowType13ArrowTimeUnitPKc"></span><span id="ArrowSchemaInitDateTime__ArrowSchemaP.ArrowType.ArrowTimeUnit.cCP"></span><span class="target" id="nanoarrow_8h_1ad43b01bf88395fbeac17fe8424d05fe8"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span cla [...]
+<span id="_CPPv323ArrowSchemaInitDateTimeP11ArrowSchema9ArrowType13ArrowTimeUnitPKc"></span><span id="_CPPv223ArrowSchemaInitDateTimeP11ArrowSchema9ArrowType13ArrowTimeUnitPKc"></span><span id="ArrowSchemaInitDateTime__ArrowSchemaP.ArrowType.ArrowTimeUnit.cCP"></span><span class="target" id="group__nanoarrow-schema_1gad43b01bf88395fbeac17fe8424d05fe8"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><span class="pre">ArrowErrorCod [...]
 <dd><p>Initialize the fields of a time, timestamp, or duration schema. </p>
 <p>Returns EINVAL for data_type that is not NANOARROW_TYPE_TIME32, NANOARROW_TYPE_TIME64, NANOARROW_TYPE_TIMESTAMP, or NANOARROW_TYPE_DURATION. The timezone parameter must be NULL for a non-timestamp data_type. </p>
 </dd></dl>
 
 <dl class="cpp function">
 <dt class="sig sig-object cpp" id="_CPPv419ArrowSchemaDeepCopyP11ArrowSchemaP11ArrowSchema">
-<span id="_CPPv319ArrowSchemaDeepCopyP11ArrowSchemaP11ArrowSchema"></span><span id="_CPPv219ArrowSchemaDeepCopyP11ArrowSchemaP11ArrowSchema"></span><span id="ArrowSchemaDeepCopy__ArrowSchemaP.ArrowSchemaP"></span><span class="target" id="nanoarrow_8h_1aa6c710253f812d5d5f3663c204468af4"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowSchemaDeepCopy</span></span></span><span  [...]
+<span id="_CPPv319ArrowSchemaDeepCopyP11ArrowSchemaP11ArrowSchema"></span><span id="_CPPv219ArrowSchemaDeepCopyP11ArrowSchemaP11ArrowSchema"></span><span id="ArrowSchemaDeepCopy__ArrowSchemaP.ArrowSchemaP"></span><span class="target" id="group__nanoarrow-schema_1gaa6c710253f812d5d5f3663c204468af4"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><span class="pre">ArrowErrorCode</span></span></a><span class="w"> </span><span class= [...]
 <dd><p>Make a (recursive) copy of a schema. </p>
 <p>Allocates and copies fields of schema into schema_out. </p>
 </dd></dl>
 
 <dl class="cpp function">
 <dt class="sig sig-object cpp" id="_CPPv420ArrowSchemaSetFormatP11ArrowSchemaPKc">
-<span id="_CPPv320ArrowSchemaSetFormatP11ArrowSchemaPKc"></span><span id="_CPPv220ArrowSchemaSetFormatP11ArrowSchemaPKc"></span><span id="ArrowSchemaSetFormat__ArrowSchemaP.cCP"></span><span class="target" id="nanoarrow_8h_1a8eb8a8a73a189ea2f9eabdc237adbf84"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowSchemaSetFormat</span></span></span><span class="sig-paren">(</span>< [...]
+<span id="_CPPv320ArrowSchemaSetFormatP11ArrowSchemaPKc"></span><span id="_CPPv220ArrowSchemaSetFormatP11ArrowSchemaPKc"></span><span id="ArrowSchemaSetFormat__ArrowSchemaP.cCP"></span><span class="target" id="group__nanoarrow-schema_1ga8eb8a8a73a189ea2f9eabdc237adbf84"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><span class="pre">ArrowErrorCode</span></span></a><span class="w"> </span><span class="sig-name descname"><span cl [...]
 <dd><p>Copy format into schema-&gt;format. </p>
-<p>schema must have been allocated using ArrowSchemaInit or ArrowSchemaDeepCopy. </p>
+<p>schema must have been allocated using <a class="reference internal" href="#group__nanoarrow-schema_1ga0b6cd215e9ca7b1a4f88441d976774dc"><span class="std std-ref">ArrowSchemaInit()</span></a> or <a class="reference internal" href="#group__nanoarrow-schema_1gaa6c710253f812d5d5f3663c204468af4"><span class="std std-ref">ArrowSchemaDeepCopy()</span></a>. </p>
 </dd></dl>
 
 <dl class="cpp function">
 <dt class="sig sig-object cpp" id="_CPPv418ArrowSchemaSetNameP11ArrowSchemaPKc">
-<span id="_CPPv318ArrowSchemaSetNameP11ArrowSchemaPKc"></span><span id="_CPPv218ArrowSchemaSetNameP11ArrowSchemaPKc"></span><span id="ArrowSchemaSetName__ArrowSchemaP.cCP"></span><span class="target" id="nanoarrow_8h_1a8724121ffb964a258577e1fb6038a2ab"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowSchemaSetName</span></span></span><span class="sig-paren">(</span><span cla [...]
+<span id="_CPPv318ArrowSchemaSetNameP11ArrowSchemaPKc"></span><span id="_CPPv218ArrowSchemaSetNameP11ArrowSchemaPKc"></span><span id="ArrowSchemaSetName__ArrowSchemaP.cCP"></span><span class="target" id="group__nanoarrow-schema_1ga8724121ffb964a258577e1fb6038a2ab"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><span class="pre">ArrowErrorCode</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n [...]
 <dd><p>Copy name into schema-&gt;name. </p>
-<p>schema must have been allocated using ArrowSchemaInit or ArrowSchemaDeepCopy. </p>
+<p>schema must have been allocated using <a class="reference internal" href="#group__nanoarrow-schema_1ga0b6cd215e9ca7b1a4f88441d976774dc"><span class="std std-ref">ArrowSchemaInit()</span></a> or <a class="reference internal" href="#group__nanoarrow-schema_1gaa6c710253f812d5d5f3663c204468af4"><span class="std std-ref">ArrowSchemaDeepCopy()</span></a>. </p>
 </dd></dl>
 
 <dl class="cpp function">
 <dt class="sig sig-object cpp" id="_CPPv422ArrowSchemaSetMetadataP11ArrowSchemaPKc">
-<span id="_CPPv322ArrowSchemaSetMetadataP11ArrowSchemaPKc"></span><span id="_CPPv222ArrowSchemaSetMetadataP11ArrowSchemaPKc"></span><span id="ArrowSchemaSetMetadata__ArrowSchemaP.cCP"></span><span class="target" id="nanoarrow_8h_1a3755dcc5bdbc9c850a5576ea74713c2b"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowSchemaSetMetadata</span></span></span><span class="sig-paren">( [...]
+<span id="_CPPv322ArrowSchemaSetMetadataP11ArrowSchemaPKc"></span><span id="_CPPv222ArrowSchemaSetMetadataP11ArrowSchemaPKc"></span><span id="ArrowSchemaSetMetadata__ArrowSchemaP.cCP"></span><span class="target" id="group__nanoarrow-schema_1ga3755dcc5bdbc9c850a5576ea74713c2b"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><span class="pre">ArrowErrorCode</span></span></a><span class="w"> </span><span class="sig-name descname"><s [...]
 <dd><p>Copy metadata into schema-&gt;metadata. </p>
-<p>schema must have been allocated using ArrowSchemaInit or ArrowSchemaDeepCopy. </p>
+<p>schema must have been allocated using <a class="reference internal" href="#group__nanoarrow-schema_1ga0b6cd215e9ca7b1a4f88441d976774dc"><span class="std std-ref">ArrowSchemaInit()</span></a> or ArrowSchemaDeepCopy. </p>
 </dd></dl>
 
 <dl class="cpp function">
 <dt class="sig sig-object cpp" id="_CPPv427ArrowSchemaAllocateChildrenP11ArrowSchema7int64_t">
-<span id="_CPPv327ArrowSchemaAllocateChildrenP11ArrowSchema7int64_t"></span><span id="_CPPv227ArrowSchemaAllocateChildrenP11ArrowSchema7int64_t"></span><span id="ArrowSchemaAllocateChildren__ArrowSchemaP.int64_t"></span><span class="target" id="nanoarrow_8h_1abdbe36e6bdca89a4a8c3e11c6bb4660e"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowSchemaAllocateChildren</span></spa [...]
+<span id="_CPPv327ArrowSchemaAllocateChildrenP11ArrowSchema7int64_t"></span><span id="_CPPv227ArrowSchemaAllocateChildrenP11ArrowSchema7int64_t"></span><span id="ArrowSchemaAllocateChildren__ArrowSchemaP.int64_t"></span><span class="target" id="group__nanoarrow-schema_1gabdbe36e6bdca89a4a8c3e11c6bb4660e"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><span class="pre">ArrowErrorCode</span></span></a><span class="w"> </span><span [...]
 <dd><p>Allocate the schema-&gt;children array. </p>
-<p>Includes the memory for each child struct ArrowSchema. schema must have been allocated using ArrowSchemaInit or ArrowSchemaDeepCopy. </p>
+<p>Includes the memory for each child struct ArrowSchema. schema must have been allocated using <a class="reference internal" href="#group__nanoarrow-schema_1ga0b6cd215e9ca7b1a4f88441d976774dc"><span class="std std-ref">ArrowSchemaInit()</span></a> or <a class="reference internal" href="#group__nanoarrow-schema_1gaa6c710253f812d5d5f3663c204468af4"><span class="std std-ref">ArrowSchemaDeepCopy()</span></a>. </p>
 </dd></dl>
 
 <dl class="cpp function">
 <dt class="sig sig-object cpp" id="_CPPv429ArrowSchemaAllocateDictionaryP11ArrowSchema">
-<span id="_CPPv329ArrowSchemaAllocateDictionaryP11ArrowSchema"></span><span id="_CPPv229ArrowSchemaAllocateDictionaryP11ArrowSchema"></span><span id="ArrowSchemaAllocateDictionary__ArrowSchemaP"></span><span class="target" id="nanoarrow_8h_1a7c2cc4b5fec3950a9d6cebda6af279da"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowSchemaAllocateDictionary</span></span></span><span c [...]
+<span id="_CPPv329ArrowSchemaAllocateDictionaryP11ArrowSchema"></span><span id="_CPPv229ArrowSchemaAllocateDictionaryP11ArrowSchema"></span><span id="ArrowSchemaAllocateDictionary__ArrowSchemaP"></span><span class="target" id="group__nanoarrow-schema_1ga7c2cc4b5fec3950a9d6cebda6af279da"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><span class="pre">ArrowErrorCode</span></span></a><span class="w"> </span><span class="sig-name d [...]
 <dd><p>Allocate the schema-&gt;dictionary member. </p>
-<p>schema must have been allocated using ArrowSchemaInit or ArrowSchemaDeepCopy. </p>
+<p>schema must have been allocated using <a class="reference internal" href="#group__nanoarrow-schema_1ga0b6cd215e9ca7b1a4f88441d976774dc"><span class="std std-ref">ArrowSchemaInit()</span></a> or <a class="reference internal" href="#group__nanoarrow-schema_1gaa6c710253f812d5d5f3663c204468af4"><span class="std std-ref">ArrowSchemaDeepCopy()</span></a>. </p>
 </dd></dl>
 
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv423ArrowMetadataReaderInitP19ArrowMetadataReaderPKc">
-<span id="_CPPv323ArrowMetadataReaderInitP19ArrowMetadataReaderPKc"></span><span id="_CPPv223ArrowMetadataReaderInitP19ArrowMetadataReaderPKc"></span><span id="ArrowMetadataReaderInit__ArrowMetadataReaderP.cCP"></span><span class="target" id="nanoarrow_8h_1a89254adeb3594ff8ca0d476ab47c0e8c"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowMetadataReaderInit</span></span></sp [...]
-<dd><p>Initialize an <a class="reference internal" href="#struct_arrow_metadata_reader"><span class="std std-ref">ArrowMetadataReader</span></a>. </p>
+</div>
 </dd></dl>
 
+</section>
+<section id="reading-schemas">
+<h2>Reading schemas<a class="headerlink" href="#reading-schemas" title="Permalink to this heading">#</a></h2>
+<dl>
+<dt class="sig sig-object cpp">
+<span class="target" id="group__nanoarrow-schema-view"></span><em><span class="pre">group</span></em> <span class="sig-name descname"><span class="pre">nanoarrow-schema-view</span></span></dt>
+<dd><div class="breathe-sectiondef docutils container">
+<p class="breathe-sectiondef-title rubric" id="breathe-section-title-functions">Functions</p>
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv423ArrowMetadataReaderReadP19ArrowMetadataReaderP15ArrowStringViewP15ArrowStringView">
-<span id="_CPPv323ArrowMetadataReaderReadP19ArrowMetadataReaderP15ArrowStringViewP15ArrowStringView"></span><span id="_CPPv223ArrowMetadataReaderReadP19ArrowMetadataReaderP15ArrowStringViewP15ArrowStringView"></span><span id="ArrowMetadataReaderRead__ArrowMetadataReaderP.ArrowStringViewP.ArrowStringViewP"></span><span class="target" id="nanoarrow_8h_1a7a6eb4c0792e56bcfb207859422398f5"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class [...]
-<dd><p>Read the next key/value pair from an <a class="reference internal" href="#struct_arrow_metadata_reader"><span class="std std-ref">ArrowMetadataReader</span></a>. </p>
+<dt class="sig sig-object cpp" id="_CPPv419ArrowSchemaViewInitP15ArrowSchemaViewP11ArrowSchemaP10ArrowError">
+<span id="_CPPv319ArrowSchemaViewInitP15ArrowSchemaViewP11ArrowSchemaP10ArrowError"></span><span id="_CPPv219ArrowSchemaViewInitP15ArrowSchemaViewP11ArrowSchemaP10ArrowError"></span><span id="ArrowSchemaViewInit__ArrowSchemaViewP.ArrowSchemaP.ArrowErrorP"></span><span class="target" id="group__nanoarrow-schema-view_1ga3e14b8d831ace92286c476206ba00ca1"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><span class="pre">ArrowErrorCod [...]
+<dd><p>Initialize an <a class="reference internal" href="#struct_arrow_schema_view"><span class="std std-ref">ArrowSchemaView</span></a>. </p>
 </dd></dl>
 
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv419ArrowMetadataSizeOfPKc">
-<span id="_CPPv319ArrowMetadataSizeOfPKc"></span><span id="_CPPv219ArrowMetadataSizeOfPKc"></span><span id="ArrowMetadataSizeOf__cCP"></span><span class="target" id="nanoarrow_8h_1aabd80297b7447691b8e06356bd9255c7"></span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowMetadataSizeOf</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const</span></span> [...]
-<dd><p>The number of bytes in in a key/value metadata string. </p>
+</div>
+<dl class="cpp struct">
+<dt class="sig sig-object cpp" id="_CPPv415ArrowSchemaView">
+<span id="_CPPv315ArrowSchemaView"></span><span id="_CPPv215ArrowSchemaView"></span><span id="ArrowSchemaView"></span><span class="target" id="struct_arrow_schema_view"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowSchemaView</span></span></span><a class="headerlink" href="#_CPPv415ArrowSchemaView" title="Permalink to this definition">#</a><br /></dt>
+<dd><div class="docutils container">
+<em>#include &lt;nanoarrow.h&gt;</em></div>
+<p>A non-owning view of a parsed ArrowSchema. </p>
+<p>Contains more readily extractable values than a raw ArrowSchema. Clients can stack or statically allocate this structure but are encouraged to use the provided getters to ensure forward compatiblity. </p>
+<div class="breathe-sectiondef docutils container">
+<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
+<dl class="cpp var">
+<dt class="sig sig-object cpp" id="_CPPv4N15ArrowSchemaView6schemaE">
+<span id="_CPPv3N15ArrowSchemaView6schemaE"></span><span id="_CPPv2N15ArrowSchemaView6schemaE"></span><span id="ArrowSchemaView::schema__ArrowSchemaP"></span><span class="target" id="struct_arrow_schema_view_1a57cab09d0c332eaf55d4886d600ecd6a"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowSchema</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname" [...]
+<dd><p>A pointer to the schema represented by this view. </p>
 </dd></dl>
 
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv419ArrowMetadataHasKeyPKc15ArrowStringView">
-<span id="_CPPv319ArrowMetadataHasKeyPKc15ArrowStringView"></span><span id="_CPPv219ArrowMetadataHasKeyPKc15ArrowStringView"></span><span id="ArrowMetadataHasKey__cCP.ArrowStringView"></span><span class="target" id="nanoarrow_8h_1a56fdfaaf8c3d923696a605f25f1f66ae"></span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowMetadataHasKey</span></span></span><span class="sig-paren">(</span><span [...]
-<dd><p>Check for a key in schema metadata. </p>
+<dl class="cpp var">
+<dt class="sig sig-object cpp" id="_CPPv4N15ArrowSchemaView9data_typeE">
+<span id="_CPPv3N15ArrowSchemaView9data_typeE"></span><span id="_CPPv2N15ArrowSchemaView9data_typeE"></span><span id="ArrowSchemaView::data_type__ArrowType"></span><span class="target" id="struct_arrow_schema_view_1aa0c2f0c6a651233903fb071fe8d8f791"></span><span class="k"><span class="pre">enum</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv49ArrowType" title="ArrowType"><span class="n"><span class="pre">ArrowType</span></span></a><span class="w"> </span>< [...]
+<dd><p>The data type represented by the schema. </p>
+<p>This value may be NANOARROW_TYPE_DICTIONARY if the schema has a non-null dictionary member; datetime types are valid values. This value will never be NANOARROW_TYPE_EXTENSION (see extension_name and/or extension_metadata to check for an extension type). </p>
 </dd></dl>
 
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv421ArrowMetadataGetValuePKc15ArrowStringViewP15ArrowStringView">
-<span id="_CPPv321ArrowMetadataGetValuePKc15ArrowStringViewP15ArrowStringView"></span><span id="_CPPv221ArrowMetadataGetValuePKc15ArrowStringViewP15ArrowStringView"></span><span id="ArrowMetadataGetValue__cCP.ArrowStringView.ArrowStringViewP"></span><span class="target" id="nanoarrow_8h_1a154a131dd727d341a3228c853da70b3e"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowMeta [...]
-<dd><p>Extract a value from schema metadata. </p>
-<p>If key does not exist in metadata, value_out is unmodified </p>
+<dl class="cpp var">
+<dt class="sig sig-object cpp" id="_CPPv4N15ArrowSchemaView17storage_data_typeE">
+<span id="_CPPv3N15ArrowSchemaView17storage_data_typeE"></span><span id="_CPPv2N15ArrowSchemaView17storage_data_typeE"></span><span id="ArrowSchemaView::storage_data_type__ArrowType"></span><span class="target" id="struct_arrow_schema_view_1a0fc551e40ea8c4c5bef551175a17ce13"></span><span class="k"><span class="pre">enum</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv49ArrowType" title="ArrowType"><span class="n"><span class="pre">ArrowType</span></span></a [...]
+<dd><p>The storage data type represented by the schema. </p>
+<p>This value will never be NANOARROW_TYPE_DICTIONARY, NANOARROW_TYPE_EXTENSION or any datetime type. This value represents only the type required to interpret the buffers in the array. </p>
 </dd></dl>
 
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv424ArrowMetadataBuilderInitP11ArrowBufferPKc">
-<span id="_CPPv324ArrowMetadataBuilderInitP11ArrowBufferPKc"></span><span id="_CPPv224ArrowMetadataBuilderInitP11ArrowBufferPKc"></span><span id="ArrowMetadataBuilderInit__ArrowBufferP.cCP"></span><span class="target" id="nanoarrow_8h_1a1fd3676ba441f4f9430315a73869e808"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowMetadataBuilderInit</span></span></span><span class="sig- [...]
-<dd><p>Initialize a builder for schema metadata from key/value pairs. </p>
-<p>metadata can be an existing metadata string or NULL to initialize an empty metadata string. </p>
+<dl class="cpp var">
+<dt class="sig sig-object cpp" id="_CPPv4N15ArrowSchemaView6layoutE">
+<span id="_CPPv3N15ArrowSchemaView6layoutE"></span><span id="_CPPv2N15ArrowSchemaView6layoutE"></span><span id="ArrowSchemaView::layout__ArrowLayout"></span><span class="target" id="struct_arrow_schema_view_1ada30de73dfb00c14bf9d9d14ad38d327"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv411ArrowLayout" title="ArrowLayout"><span class="n"><span class="pre">ArrowLayout</span></span></a><span class="w"> </span [...]
+<dd><p>The storage layout represented by the schema. </p>
 </dd></dl>
 
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv426ArrowMetadataBuilderAppendP11ArrowBuffer15ArrowStringView15ArrowStringView">
-<span id="_CPPv326ArrowMetadataBuilderAppendP11ArrowBuffer15ArrowStringView15ArrowStringView"></span><span id="_CPPv226ArrowMetadataBuilderAppendP11ArrowBuffer15ArrowStringView15ArrowStringView"></span><span id="ArrowMetadataBuilderAppend__ArrowBufferP.ArrowStringView.ArrowStringView"></span><span class="target" id="nanoarrow_8h_1a3a14a413a8570d3f96d15255c3f1fc7a"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"> [...]
-<dd><p>Append a key/value pair to a buffer containing serialized metadata. </p>
+<dl class="cpp var">
+<dt class="sig sig-object cpp" id="_CPPv4N15ArrowSchemaView14extension_nameE">
+<span id="_CPPv3N15ArrowSchemaView14extension_nameE"></span><span id="_CPPv2N15ArrowSchemaView14extension_nameE"></span><span id="ArrowSchemaView::extension_name__ArrowStringView"></span><span class="target" id="struct_arrow_schema_view_1a0d085aea742e822502485445e580dea2"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv415ArrowStringView" title="ArrowStringView"><span class="n"><span class="pre">ArrowStringVie [...]
+<dd><p>The extension type name if it exists. </p>
+<p>If the ARROW:extension:name key is present in schema.metadata, extension_name.data will be non-NULL. </p>
 </dd></dl>
 
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv423ArrowMetadataBuilderSetP11ArrowBuffer15ArrowStringView15ArrowStringView">
-<span id="_CPPv323ArrowMetadataBuilderSetP11ArrowBuffer15ArrowStringView15ArrowStringView"></span><span id="_CPPv223ArrowMetadataBuilderSetP11ArrowBuffer15ArrowStringView15ArrowStringView"></span><span id="ArrowMetadataBuilderSet__ArrowBufferP.ArrowStringView.ArrowStringView"></span><span class="target" id="nanoarrow_8h_1a4d8fca20ce7049d66a6445df1a2d83e0"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"><span cla [...]
-<dd><p>Set a key/value pair to a buffer containing serialized metadata. </p>
-<p>Ensures that the only entry for key in the metadata is set to value. This function maintains the existing position of (the first instance of) key if present in the data. </p>
+<dl class="cpp var">
+<dt class="sig sig-object cpp" id="_CPPv4N15ArrowSchemaView18extension_metadataE">
+<span id="_CPPv3N15ArrowSchemaView18extension_metadataE"></span><span id="_CPPv2N15ArrowSchemaView18extension_metadataE"></span><span id="ArrowSchemaView::extension_metadata__ArrowStringView"></span><span class="target" id="struct_arrow_schema_view_1afb68ff6039541facdc3afb61c9acd558"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv415ArrowStringView" title="ArrowStringView"><span class="n"><span class="pre">Ar [...]
+<dd><p>The extension type metadata if it exists. </p>
+<p>If the ARROW:extension:metadata key is present in schema.metadata, extension_metadata.data will be non-NULL. </p>
 </dd></dl>
 
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv426ArrowMetadataBuilderRemoveP11ArrowBuffer15ArrowStringView">
-<span id="_CPPv326ArrowMetadataBuilderRemoveP11ArrowBuffer15ArrowStringView"></span><span id="_CPPv226ArrowMetadataBuilderRemoveP11ArrowBuffer15ArrowStringView"></span><span id="ArrowMetadataBuilderRemove__ArrowBufferP.ArrowStringView"></span><span class="target" id="nanoarrow_8h_1a093520d83b6d21c836e178b900ff96b1"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowMetadataBui [...]
-<dd><p>Remove a key from a buffer containing serialized metadata. </p>
+<dl class="cpp var">
+<dt class="sig sig-object cpp" id="_CPPv4N15ArrowSchemaView10fixed_sizeE">
+<span id="_CPPv3N15ArrowSchemaView10fixed_sizeE"></span><span id="_CPPv2N15ArrowSchemaView10fixed_sizeE"></span><span id="ArrowSchemaView::fixed_size__int32_t"></span><span class="target" id="struct_arrow_schema_view_1ab74f333f4ab5889a4d5b6352a9e8acd9"></span><span class="n"><span class="pre">int32_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">fixed_size</span></span></span><a class="headerlink" href="#_CPPv4N15ArrowSchemaView10f [...]
+<dd><p>Format fixed size parameter. </p>
+<p>This value is set when parsing a fixed-size binary or fixed-size list schema; this value is undefined for other types. For a fixed-size binary schema this value is in bytes; for a fixed-size list schema this value refers to the number of child elements for each element of the parent. </p>
 </dd></dl>
 
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv419ArrowSchemaViewInitP15ArrowSchemaViewP11ArrowSchemaP10ArrowError">
-<span id="_CPPv319ArrowSchemaViewInitP15ArrowSchemaViewP11ArrowSchemaP10ArrowError"></span><span id="_CPPv219ArrowSchemaViewInitP15ArrowSchemaViewP11ArrowSchemaP10ArrowError"></span><span id="ArrowSchemaViewInit__ArrowSchemaViewP.ArrowSchemaP.ArrowErrorP"></span><span class="target" id="nanoarrow_8h_1a3e14b8d831ace92286c476206ba00ca1"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="p [...]
-<dd><p>Initialize an <a class="reference internal" href="#struct_arrow_schema_view"><span class="std std-ref">ArrowSchemaView</span></a>. </p>
+<dl class="cpp var">
+<dt class="sig sig-object cpp" id="_CPPv4N15ArrowSchemaView16decimal_bitwidthE">
+<span id="_CPPv3N15ArrowSchemaView16decimal_bitwidthE"></span><span id="_CPPv2N15ArrowSchemaView16decimal_bitwidthE"></span><span id="ArrowSchemaView::decimal_bitwidth__int32_t"></span><span class="target" id="struct_arrow_schema_view_1a7d632b171c76ca184d4a50f144dd16a0"></span><span class="n"><span class="pre">int32_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">decimal_bitwidth</span></span></span><a class="headerlink" href="#_CP [...]
+<dd><p>Decimal bitwidth. </p>
+<p>This value is set when parsing a decimal type schema; this value is undefined for other types. </p>
 </dd></dl>
 
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv415ArrowBufferInitP11ArrowBuffer">
-<span id="_CPPv315ArrowBufferInitP11ArrowBuffer"></span><span id="_CPPv215ArrowBufferInitP11ArrowBuffer"></span><span id="ArrowBufferInit__ArrowBufferP"></span><span class="target" id="nanoarrow_8h_1ac85f9e1b00d78ebc2ac388f4fbc3c160"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-n [...]
-<dd><p>Initialize an ArrowBuffer. </p>
-<p>Initialize a buffer with a NULL, zero-size buffer using the default buffer allocator. </p>
+<dl class="cpp var">
+<dt class="sig sig-object cpp" id="_CPPv4N15ArrowSchemaView17decimal_precisionE">
+<span id="_CPPv3N15ArrowSchemaView17decimal_precisionE"></span><span id="_CPPv2N15ArrowSchemaView17decimal_precisionE"></span><span id="ArrowSchemaView::decimal_precision__int32_t"></span><span class="target" id="struct_arrow_schema_view_1a1cc325480d15c9823e6860b4caacb697"></span><span class="n"><span class="pre">int32_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">decimal_precision</span></span></span><a class="headerlink" href=" [...]
+<dd><p>Decimal precision. </p>
+<p>This value is set when parsing a decimal type schema; this value is undefined for other types. </p>
 </dd></dl>
 
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv423ArrowBufferSetAllocatorP11ArrowBuffer20ArrowBufferAllocator">
-<span id="_CPPv323ArrowBufferSetAllocatorP11ArrowBuffer20ArrowBufferAllocator"></span><span id="_CPPv223ArrowBufferSetAllocatorP11ArrowBuffer20ArrowBufferAllocator"></span><span id="ArrowBufferSetAllocator__ArrowBufferP.ArrowBufferAllocator"></span><span class="target" id="nanoarrow_8h_1aad4ce79883f9eecc8350f57c53ca3b6c"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span  [...]
-<dd><p>Set a newly-initialized buffer’s allocator. </p>
-<p>Returns EINVAL if the buffer has already been allocated. </p>
+<dl class="cpp var">
+<dt class="sig sig-object cpp" id="_CPPv4N15ArrowSchemaView13decimal_scaleE">
+<span id="_CPPv3N15ArrowSchemaView13decimal_scaleE"></span><span id="_CPPv2N15ArrowSchemaView13decimal_scaleE"></span><span id="ArrowSchemaView::decimal_scale__int32_t"></span><span class="target" id="struct_arrow_schema_view_1a138e714b344e2bd3b5d1427ca38221aa"></span><span class="n"><span class="pre">int32_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">decimal_scale</span></span></span><a class="headerlink" href="#_CPPv4N15ArrowS [...]
+<dd><p>Decimal scale. </p>
+<p>This value is set when parsing a decimal type schema; this value is undefined for other types. </p>
 </dd></dl>
 
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv416ArrowBufferResetP11ArrowBuffer">
-<span id="_CPPv316ArrowBufferResetP11ArrowBuffer"></span><span id="_CPPv216ArrowBufferResetP11ArrowBuffer"></span><span id="ArrowBufferReset__ArrowBufferP"></span><span class="target" id="nanoarrow_8h_1a343c15a9d511553878c0c2f54c355d6e"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="si [...]
-<dd><p>Reset an ArrowBuffer. </p>
-<p>Releases the buffer using the allocator’s free method if the buffer’s data member is non-null, sets the data member to NULL, and sets the buffer’s size and capacity to 0. </p>
+<dl class="cpp var">
+<dt class="sig sig-object cpp" id="_CPPv4N15ArrowSchemaView9time_unitE">
+<span id="_CPPv3N15ArrowSchemaView9time_unitE"></span><span id="_CPPv2N15ArrowSchemaView9time_unitE"></span><span id="ArrowSchemaView::time_unit__ArrowTimeUnit"></span><span class="target" id="struct_arrow_schema_view_1a51df746b957ea34af6128a111bd5e43e"></span><span class="k"><span class="pre">enum</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv413ArrowTimeUnit" title="ArrowTimeUnit"><span class="n"><span class="pre">ArrowTimeUnit</span></span></a><span cl [...]
+<dd><p>Format time unit parameter. </p>
+<p>This value is set when parsing a date/time type. The value is undefined for other types. </p>
 </dd></dl>
 
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv415ArrowBufferMoveP11ArrowBufferP11ArrowBuffer">
-<span id="_CPPv315ArrowBufferMoveP11ArrowBufferP11ArrowBuffer"></span><span id="_CPPv215ArrowBufferMoveP11ArrowBufferP11ArrowBuffer"></span><span id="ArrowBufferMove__ArrowBufferP.ArrowBufferP"></span><span class="target" id="nanoarrow_8h_1a1c82fbbedca64d91977a03ca00818f6d"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span>< [...]
-<dd><p>Move an ArrowBuffer. </p>
-<p>Transfers the buffer data and lifecycle management to another address and resets buffer. </p>
+<dl class="cpp var">
+<dt class="sig sig-object cpp" id="_CPPv4N15ArrowSchemaView8timezoneE">
+<span id="_CPPv3N15ArrowSchemaView8timezoneE"></span><span id="_CPPv2N15ArrowSchemaView8timezoneE"></span><span id="ArrowSchemaView::timezone__ArrowStringView"></span><span class="target" id="struct_arrow_schema_view_1a7b3741760b3b6259d1277d50e163ea63"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv415ArrowStringView" title="ArrowStringView"><span class="n"><span class="pre">ArrowStringView</span></span></a>< [...]
+<dd><p>Format timezone parameter. </p>
+<p>This value is set when parsing a timestamp type and represents the timezone format parameter. The ArrowStrintgView points to data within the schema and the value is undefined for other types. </p>
 </dd></dl>
 
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv417ArrowBufferResizeP11ArrowBuffer7int64_tc">
-<span id="_CPPv317ArrowBufferResizeP11ArrowBuffer7int64_tc"></span><span id="_CPPv217ArrowBufferResizeP11ArrowBuffer7int64_tc"></span><span id="ArrowBufferResize__ArrowBufferP.int64_t.c"></span><span class="target" id="nanoarrow_8h_1a7334c70b8fd2db62de0645cce9bb6087"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowErrorCode</span></span [...]
-<dd><p>Grow or shrink a buffer to a given capacity. </p>
-<p>When shrinking the capacity of the buffer, the buffer is only reallocated if shrink_to_fit is non-zero. Calling ArrowBufferResize() does not adjust the buffer’s size member except to ensure that the invariant capacity &gt;= size remains true. </p>
+<dl class="cpp var">
+<dt class="sig sig-object cpp" id="_CPPv4N15ArrowSchemaView14union_type_idsE">
+<span id="_CPPv3N15ArrowSchemaView14union_type_idsE"></span><span id="_CPPv2N15ArrowSchemaView14union_type_idsE"></span><span id="ArrowSchemaView::union_type_ids__ArrowStringView"></span><span class="target" id="struct_arrow_schema_view_1ab58d468e05f51aba4d4633b32853147a"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv415ArrowStringView" title="ArrowStringView"><span class="n"><span class="pre">ArrowStringVie [...]
+<dd><p>Union type ids parameter. </p>
+<p>This value is set when parsing a union type and represents type ids parameter. The <a class="reference internal" href="#struct_arrow_string_view"><span class="std std-ref">ArrowStringView</span></a> points to data within the schema and the value is undefined for other types. </p>
 </dd></dl>
 
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv418ArrowBufferReserveP11ArrowBuffer7int64_t">
-<span id="_CPPv318ArrowBufferReserveP11ArrowBuffer7int64_t"></span><span id="_CPPv218ArrowBufferReserveP11ArrowBuffer7int64_t"></span><span id="ArrowBufferReserve__ArrowBufferP.int64_t"></span><span class="target" id="nanoarrow_8h_1a355bfda26c6bd1db1765076a042ba345"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowErrorCode</span></span> [...]
-<dd><p>Ensure a buffer has at least a given additional capacity. </p>
-<p>Ensures that the buffer has space to append at least additional_size_bytes, overallocating when required. </p>
+</div>
 </dd></dl>
 
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv423ArrowBufferAppendUnsafeP11ArrowBufferPKv7int64_t">
-<span id="_CPPv323ArrowBufferAppendUnsafeP11ArrowBufferPKv7int64_t"></span><span id="_CPPv223ArrowBufferAppendUnsafeP11ArrowBufferPKv7int64_t"></span><span id="ArrowBufferAppendUnsafe__ArrowBufferP.voidCP.int64_t"></span><span class="target" id="nanoarrow_8h_1a6afb02edfa7936ecae95936672c768bb"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre" [...]
-<dd><p>Write data to buffer and increment the buffer size. </p>
-<p>This function does not check that buffer has the required capacity </p>
 </dd></dl>
 
+</section>
+<section id="creating-arrays">
+<h2>Creating arrays<a class="headerlink" href="#creating-arrays" title="Permalink to this heading">#</a></h2>
+<dl>
+<dt class="sig sig-object cpp">
+<span class="target" id="group__nanoarrow-array"></span><em><span class="pre">group</span></em> <span class="sig-name descname"><span class="pre">nanoarrow-array</span></span></dt>
+<dd><p>These functions allocate, copy, and destroy ArrowArray structures. </p>
+<div class="breathe-sectiondef docutils container">
+<p class="breathe-sectiondef-title rubric" id="breathe-section-title-functions">Functions</p>
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv417ArrowBufferAppendP11ArrowBufferPKv7int64_t">
-<span id="_CPPv317ArrowBufferAppendP11ArrowBufferPKv7int64_t"></span><span id="_CPPv217ArrowBufferAppendP11ArrowBufferPKv7int64_t"></span><span id="ArrowBufferAppend__ArrowBufferP.voidCP.int64_t"></span><span class="target" id="nanoarrow_8h_1ac8c2d733e4c7313aebc4d248f39f6cbb"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowErrorCode</sp [...]
-<dd><p>Write data to buffer and increment the buffer size. </p>
-<p>This function writes and ensures that the buffer has the required capacity, possibly by reallocating the buffer. Like ArrowBufferReserve, this will overallocate when reallocation is required. </p>
+<dt class="sig sig-object cpp" id="_CPPv414ArrowArrayInitP10ArrowArray9ArrowType">
+<span id="_CPPv314ArrowArrayInitP10ArrowArray9ArrowType"></span><span id="_CPPv214ArrowArrayInitP10ArrowArray9ArrowType"></span><span id="ArrowArrayInit__ArrowArrayP.ArrowType"></span><span class="target" id="group__nanoarrow-array_1ga2c80b8404ed26bba84ba1a436c2ac26c"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><span class="pre">ArrowErrorCode</span></span></a><span class="w"> </span><span class="sig-name descname"><span clas [...]
+<dd><p>Initialize the fields of an array. </p>
+<p>Initializes the fields and release callback of array. Caller is responsible for calling the array-&gt;release callback if NANOARROW_OK is returned. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv421ArrowBufferAppendFillP11ArrowBuffer7uint8_t7int64_t">
-<span id="_CPPv321ArrowBufferAppendFillP11ArrowBuffer7uint8_t7int64_t"></span><span id="_CPPv221ArrowBufferAppendFillP11ArrowBuffer7uint8_t7int64_t"></span><span id="ArrowBufferAppendFill__ArrowBufferP.uint8_t.int64_t"></span><span class="target" id="nanoarrow_8h_1ac4bbb86e0b2d23b298394f6e646243e7"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class=" [...]
-<dd><p>Write fill to buffer and increment the buffer size. </p>
-<p>This function writes the specified number of fill bytes and ensures that the buffer has the required capacity, </p>
+<dt class="sig sig-object cpp" id="_CPPv424ArrowArrayInitFromSchemaP10ArrowArrayP11ArrowSchemaP10ArrowError">
+<span id="_CPPv324ArrowArrayInitFromSchemaP10ArrowArrayP11ArrowSchemaP10ArrowError"></span><span id="_CPPv224ArrowArrayInitFromSchemaP10ArrowArrayP11ArrowSchemaP10ArrowError"></span><span id="ArrowArrayInitFromSchema__ArrowArrayP.ArrowSchemaP.ArrowErrorP"></span><span class="target" id="group__nanoarrow-array_1ga31a82c7fe72e5cc46eeab4713c284f84"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><span class="pre">ArrowErrorCode</spa [...]
+<dd><p>Initialize the contents of an ArrowArray from an ArrowSchema. </p>
+<p>Caller is responsible for calling the array-&gt;release callback if NANOARROW_OK is returned. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv421ArrowBufferAppendInt8P11ArrowBuffer6int8_t">
-<span id="_CPPv321ArrowBufferAppendInt8P11ArrowBuffer6int8_t"></span><span id="_CPPv221ArrowBufferAppendInt8P11ArrowBuffer6int8_t"></span><span id="ArrowBufferAppendInt8__ArrowBufferP.int8_t"></span><span class="target" id="nanoarrow_8h_1aeea176364336f15792f3806b6a83a556"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowErrorCode</span>< [...]
-<dd><p>Write an 8-bit integer to a buffer. </p>
+<dt class="sig sig-object cpp" id="_CPPv426ArrowArrayAllocateChildrenP10ArrowArray7int64_t">
+<span id="_CPPv326ArrowArrayAllocateChildrenP10ArrowArray7int64_t"></span><span id="_CPPv226ArrowArrayAllocateChildrenP10ArrowArray7int64_t"></span><span id="ArrowArrayAllocateChildren__ArrowArrayP.int64_t"></span><span class="target" id="group__nanoarrow-array_1ga2efc2f2831aabd24e3a894959206b770"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><span class="pre">ArrowErrorCode</span></span></a><span class="w"> </span><span class= [...]
+<dd><p>Allocate the array-&gt;children array. </p>
+<p>Includes the memory for each child struct ArrowArray, whose members are marked as released and may be subsequently initialized with <a class="reference internal" href="#group__nanoarrow-array_1ga2c80b8404ed26bba84ba1a436c2ac26c"><span class="std std-ref">ArrowArrayInit()</span></a> or moved from an existing ArrowArray. schema must have been allocated using <a class="reference internal" href="#group__nanoarrow-array_1ga2c80b8404ed26bba84ba1a436c2ac26c"><span class="std std-ref">ArrowAr [...]
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv422ArrowBufferAppendUInt8P11ArrowBuffer7uint8_t">
-<span id="_CPPv322ArrowBufferAppendUInt8P11ArrowBuffer7uint8_t"></span><span id="_CPPv222ArrowBufferAppendUInt8P11ArrowBuffer7uint8_t"></span><span id="ArrowBufferAppendUInt8__ArrowBufferP.uint8_t"></span><span class="target" id="nanoarrow_8h_1abf2e92c5b3824fda3f717e57b7e0c45e"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowErrorCode</ [...]
-<dd><p>Write an unsigned 8-bit integer to a buffer. </p>
+<dt class="sig sig-object cpp" id="_CPPv428ArrowArrayAllocateDictionaryP10ArrowArray">
+<span id="_CPPv328ArrowArrayAllocateDictionaryP10ArrowArray"></span><span id="_CPPv228ArrowArrayAllocateDictionaryP10ArrowArray"></span><span id="ArrowArrayAllocateDictionary__ArrowArrayP"></span><span class="target" id="group__nanoarrow-array_1ga0bfe9d4cddb8de65e29ab46ce0b495a4"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><span class="pre">ArrowErrorCode</span></span></a><span class="w"> </span><span class="sig-name descname [...]
+<dd><p>Allocate the array-&gt;dictionary member. </p>
+<p>Includes the memory for the struct ArrowArray, whose contents is marked as released and may be subsequently initialized with <a class="reference internal" href="#group__nanoarrow-array_1ga2c80b8404ed26bba84ba1a436c2ac26c"><span class="std std-ref">ArrowArrayInit()</span></a> or moved from an existing ArrowArray. array must have been allocated using <a class="reference internal" href="#group__nanoarrow-array_1ga2c80b8404ed26bba84ba1a436c2ac26c"><span class="std std-ref">ArrowArrayInit( [...]
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv422ArrowBufferAppendInt16P11ArrowBuffer7int16_t">
-<span id="_CPPv322ArrowBufferAppendInt16P11ArrowBuffer7int16_t"></span><span id="_CPPv222ArrowBufferAppendInt16P11ArrowBuffer7int16_t"></span><span id="ArrowBufferAppendInt16__ArrowBufferP.int16_t"></span><span class="target" id="nanoarrow_8h_1ab09ee38169d62e8ef5314dd9e7fde233"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowErrorCode</ [...]
-<dd><p>Write a 16-bit integer to a buffer. </p>
+<dt class="sig sig-object cpp" id="_CPPv427ArrowArraySetValidityBitmapP10ArrowArrayP11ArrowBitmap">
+<span id="_CPPv327ArrowArraySetValidityBitmapP10ArrowArrayP11ArrowBitmap"></span><span id="_CPPv227ArrowArraySetValidityBitmapP10ArrowArrayP11ArrowBitmap"></span><span id="ArrowArraySetValidityBitmap__ArrowArrayP.ArrowBitmapP"></span><span class="target" id="group__nanoarrow-array_1gad8aef62893226fa4764a9c63eb602080"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowArraySetValidityBi [...]
+<dd><p>Set the validity bitmap of an ArrowArray. </p>
+<p>array must have been allocated using <a class="reference internal" href="#group__nanoarrow-array_1ga2c80b8404ed26bba84ba1a436c2ac26c"><span class="std std-ref">ArrowArrayInit()</span></a> </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv423ArrowBufferAppendUInt16P11ArrowBuffer8uint16_t">
-<span id="_CPPv323ArrowBufferAppendUInt16P11ArrowBuffer8uint16_t"></span><span id="_CPPv223ArrowBufferAppendUInt16P11ArrowBuffer8uint16_t"></span><span id="ArrowBufferAppendUInt16__ArrowBufferP.uint16_t"></span><span class="target" id="nanoarrow_8h_1a86dc0ae3a1d57382dbe4da4b5118dd6b"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowError [...]
-<dd><p>Write an unsigned 16-bit integer to a buffer. </p>
+<dt class="sig sig-object cpp" id="_CPPv419ArrowArraySetBufferP10ArrowArray7int64_tP11ArrowBuffer">
+<span id="_CPPv319ArrowArraySetBufferP10ArrowArray7int64_tP11ArrowBuffer"></span><span id="_CPPv219ArrowArraySetBufferP10ArrowArray7int64_tP11ArrowBuffer"></span><span id="ArrowArraySetBuffer__ArrowArrayP.int64_t.ArrowBufferP"></span><span class="target" id="group__nanoarrow-array_1ga52111316e373e24687710f5158da3527"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><span class="pre">ArrowErrorCode</span></span></a><span class="w"> [...]
+<dd><p>Set a buffer of an ArrowArray. </p>
+<p>array must have been allocated using <a class="reference internal" href="#group__nanoarrow-array_1ga2c80b8404ed26bba84ba1a436c2ac26c"><span class="std std-ref">ArrowArrayInit()</span></a> </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv422ArrowBufferAppendInt32P11ArrowBuffer7int32_t">
-<span id="_CPPv322ArrowBufferAppendInt32P11ArrowBuffer7int32_t"></span><span id="_CPPv222ArrowBufferAppendInt32P11ArrowBuffer7int32_t"></span><span id="ArrowBufferAppendInt32__ArrowBufferP.int32_t"></span><span class="target" id="nanoarrow_8h_1a5c36ac40ea35b61b1f845fe4a7ea5247"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowErrorCode</ [...]
-<dd><p>Write a 32-bit integer to a buffer. </p>
+<dt class="sig sig-object cpp" id="_CPPv424ArrowArrayValidityBitmapP10ArrowArray">
+<span id="_CPPv324ArrowArrayValidityBitmapP10ArrowArray"></span><span id="_CPPv224ArrowArrayValidityBitmapP10ArrowArray"></span><span id="ArrowArrayValidityBitmap__ArrowArrayP"></span><span class="target" id="group__nanoarrow-array_1ga3e0fdea696cd9afabd3eb2a59ea95375"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span  [...]
+<dd><p>Get the validity bitmap of an ArrowArray. </p>
+<p>array must have been allocated using <a class="reference internal" href="#group__nanoarrow-array_1ga2c80b8404ed26bba84ba1a436c2ac26c"><span class="std std-ref">ArrowArrayInit()</span></a> </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv423ArrowBufferAppendUInt32P11ArrowBuffer8uint32_t">
-<span id="_CPPv323ArrowBufferAppendUInt32P11ArrowBuffer8uint32_t"></span><span id="_CPPv223ArrowBufferAppendUInt32P11ArrowBuffer8uint32_t"></span><span id="ArrowBufferAppendUInt32__ArrowBufferP.uint32_t"></span><span class="target" id="nanoarrow_8h_1a82b0e69bc74da1362f9bde4c00856143"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowError [...]
-<dd><p>Write an unsigned 32-bit integer to a buffer. </p>
+<dt class="sig sig-object cpp" id="_CPPv416ArrowArrayBufferP10ArrowArray7int64_t">
+<span id="_CPPv316ArrowArrayBufferP10ArrowArray7int64_t"></span><span id="_CPPv216ArrowArrayBufferP10ArrowArray7int64_t"></span><span id="ArrowArrayBuffer__ArrowArrayP.int64_t"></span><span class="target" id="group__nanoarrow-array_1gafbd17d94c188c9760f5bc91195683bd8"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span  [...]
+<dd><p>Get a buffer of an ArrowArray. </p>
+<p>array must have been allocated using <a class="reference internal" href="#group__nanoarrow-array_1ga2c80b8404ed26bba84ba1a436c2ac26c"><span class="std std-ref">ArrowArrayInit()</span></a> </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv422ArrowBufferAppendInt64P11ArrowBuffer7int64_t">
-<span id="_CPPv322ArrowBufferAppendInt64P11ArrowBuffer7int64_t"></span><span id="_CPPv222ArrowBufferAppendInt64P11ArrowBuffer7int64_t"></span><span id="ArrowBufferAppendInt64__ArrowBufferP.int64_t"></span><span class="target" id="nanoarrow_8h_1a7917aee52cf3225e0ec8982dcfd9a570"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowErrorCode</ [...]
-<dd><p>Write a 64-bit integer to a buffer. </p>
+<dt class="sig sig-object cpp" id="_CPPv424ArrowArrayStartAppendingP10ArrowArray">
+<span id="_CPPv324ArrowArrayStartAppendingP10ArrowArray"></span><span id="_CPPv224ArrowArrayStartAppendingP10ArrowArray"></span><span id="ArrowArrayStartAppending__ArrowArrayP"></span><span class="target" id="group__nanoarrow-array_1gaab61ae0a0eb698c817bee25ee3a750f5"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv414ArrowErrorCode" [...]
+<dd><p>Start element-wise appending to an ArrowArray. </p>
+<p>Initializes any values needed to use ArrowArrayAppend*() functions. All element-wise appenders append by value and return EINVAL if the exact value cannot be represented by the underlying storage type. array must have been allocated using <a class="reference internal" href="#group__nanoarrow-array_1ga2c80b8404ed26bba84ba1a436c2ac26c"><span class="std std-ref">ArrowArrayInit()</span></a> </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv423ArrowBufferAppendUInt64P11ArrowBuffer8uint64_t">
-<span id="_CPPv323ArrowBufferAppendUInt64P11ArrowBuffer8uint64_t"></span><span id="_CPPv223ArrowBufferAppendUInt64P11ArrowBuffer8uint64_t"></span><span id="ArrowBufferAppendUInt64__ArrowBufferP.uint64_t"></span><span class="target" id="nanoarrow_8h_1a625f65a799abf1efa39002b6dcacb709"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowError [...]
-<dd><p>Write an unsigned 64-bit integer to a buffer. </p>
+<dt class="sig sig-object cpp" id="_CPPv417ArrowArrayReserveP10ArrowArray7int64_t">
+<span id="_CPPv317ArrowArrayReserveP10ArrowArray7int64_t"></span><span id="_CPPv217ArrowArrayReserveP10ArrowArray7int64_t"></span><span id="ArrowArrayReserve__ArrowArrayP.int64_t"></span><span class="target" id="group__nanoarrow-array_1gaa2644de6315ff68a694370c51948071e"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><span class="pre">ArrowErrorCode</span></span></a><span class="w"> </span><span class="sig-name descname"><span c [...]
+<dd><p>Reserve space for future appends. </p>
+<p>For buffer sizes that can be calculated (i.e., not string data buffers or child array sizes for non-fixed-size arrays), recursively reserve space for additional elements. This is useful for reducing the number of reallocations that occur using the item-wise appenders. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv423ArrowBufferAppendDoubleP11ArrowBufferd">
-<span id="_CPPv323ArrowBufferAppendDoubleP11ArrowBufferd"></span><span id="_CPPv223ArrowBufferAppendDoubleP11ArrowBufferd"></span><span id="ArrowBufferAppendDouble__ArrowBufferP.double"></span><span class="target" id="nanoarrow_8h_1a92cdc5b9edcfc816fdd12f38be36eb12"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowErrorCode</span></span> [...]
-<dd><p>Write a double to a buffer. </p>
+<dt class="sig sig-object cpp" id="_CPPv420ArrowArrayAppendNullP10ArrowArray7int64_t">
+<span id="_CPPv320ArrowArrayAppendNullP10ArrowArray7int64_t"></span><span id="_CPPv220ArrowArrayAppendNullP10ArrowArray7int64_t"></span><span id="ArrowArrayAppendNull__ArrowArrayP.int64_t"></span><span class="target" id="group__nanoarrow-array_1ga7b4c3eb74f4bc6c6155599fb2658f927"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv414Arr [...]
+<dd><p>Append a null value to an array. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv422ArrowBufferAppendFloatP11ArrowBufferf">
-<span id="_CPPv322ArrowBufferAppendFloatP11ArrowBufferf"></span><span id="_CPPv222ArrowBufferAppendFloatP11ArrowBufferf"></span><span id="ArrowBufferAppendFloat__ArrowBufferP.float"></span><span class="target" id="nanoarrow_8h_1afe5febfaba36b789579194612819af0f"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowErrorCode</span></span><spa [...]
-<dd><p>Write a float to a buffer. </p>
+<dt class="sig sig-object cpp" id="_CPPv419ArrowArrayAppendIntP10ArrowArray7int64_t">
+<span id="_CPPv319ArrowArrayAppendIntP10ArrowArray7int64_t"></span><span id="_CPPv219ArrowArrayAppendIntP10ArrowArray7int64_t"></span><span id="ArrowArrayAppendInt__ArrowArrayP.int64_t"></span><span class="target" id="group__nanoarrow-array_1gac6b99a2b05db4c956def99131f803994"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv414ArrowE [...]
+<dd><p>Append a signed integer value to an array. </p>
+<p>Returns NANOARROW_OK if value can be exactly represented by the underlying storage type or EINVAL otherwise (e.g., value is outside the valid array range). </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv411ArrowBitGetPK7uint8_t7int64_t">
-<span id="_CPPv311ArrowBitGetPK7uint8_t7int64_t"></span><span id="_CPPv211ArrowBitGetPK7uint8_t7int64_t"></span><span id="ArrowBitGet__uint8_tCP.int64_t"></span><span class="target" id="nanoarrow_8h_1a66bb6ec563f8c90dd55856cbc1522757"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">int8_t</span></span><span class="w"> </span><span class="sig [...]
-<dd><p>Extract a boolean value from a bitmap. </p>
+<dt class="sig sig-object cpp" id="_CPPv420ArrowArrayAppendUIntP10ArrowArray8uint64_t">
+<span id="_CPPv320ArrowArrayAppendUIntP10ArrowArray8uint64_t"></span><span id="_CPPv220ArrowArrayAppendUIntP10ArrowArray8uint64_t"></span><span id="ArrowArrayAppendUInt__ArrowArrayP.uint64_t"></span><span class="target" id="group__nanoarrow-array_1gae91f4c278859a8457b8090ca4dfd1e31"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv414 [...]
+<dd><p>Append an unsigned integer value to an array. </p>
+<p>Returns NANOARROW_OK if value can be exactly represented by the underlying storage type or EINVAL otherwise (e.g., value is outside the valid array range). </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv411ArrowBitSetP7uint8_t7int64_t">
-<span id="_CPPv311ArrowBitSetP7uint8_t7int64_t"></span><span id="_CPPv211ArrowBitSetP7uint8_t7int64_t"></span><span id="ArrowBitSet__uint8_tP.int64_t"></span><span class="target" id="nanoarrow_8h_1a2a9cc30717e11b59813a124975569a6a"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-nam [...]
-<dd><p>Set a boolean value to a bitmap to true. </p>
+<dt class="sig sig-object cpp" id="_CPPv422ArrowArrayAppendDoubleP10ArrowArrayd">
+<span id="_CPPv322ArrowArrayAppendDoubleP10ArrowArrayd"></span><span id="_CPPv222ArrowArrayAppendDoubleP10ArrowArrayd"></span><span id="ArrowArrayAppendDouble__ArrowArrayP.double"></span><span class="target" id="group__nanoarrow-array_1ga2e03258b386ed299928471394586b185"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv414ArrowErrorCo [...]
+<dd><p>Append a double value to an array. </p>
+<p>Returns NANOARROW_OK if value can be exactly represented by the underlying storage type or EINVAL otherwise (e.g., value is outside the valid array range or there is an attempt to append a non-integer to an array with an integer storage type). </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv413ArrowBitClearP7uint8_t7int64_t">
-<span id="_CPPv313ArrowBitClearP7uint8_t7int64_t"></span><span id="_CPPv213ArrowBitClearP7uint8_t7int64_t"></span><span id="ArrowBitClear__uint8_tP.int64_t"></span><span class="target" id="nanoarrow_8h_1aef7decc8c405ecea91f6050547453d0a"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="s [...]
-<dd><p>Set a boolean value to a bitmap to false. </p>
+<dt class="sig sig-object cpp" id="_CPPv421ArrowArrayAppendBytesP10ArrowArray15ArrowBufferView">
+<span id="_CPPv321ArrowArrayAppendBytesP10ArrowArray15ArrowBufferView"></span><span id="_CPPv221ArrowArrayAppendBytesP10ArrowArray15ArrowBufferView"></span><span id="ArrowArrayAppendBytes__ArrowArrayP.ArrowBufferView"></span><span class="target" id="group__nanoarrow-array_1ga40e1dce8b43124c9710538842e68f944"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference [...]
+<dd><p>Append a string of bytes to an array. </p>
+<p>Returns NANOARROW_OK if value can be exactly represented by the underlying storage type or EINVAL otherwise (e.g., the underlying array is not a binary, string, large binary, large string, or fixed-size binary array, or value is the wrong size for a fixed-size binary array). </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv413ArrowBitSetToP7uint8_t7int64_t7uint8_t">
-<span id="_CPPv313ArrowBitSetToP7uint8_t7int64_t7uint8_t"></span><span id="_CPPv213ArrowBitSetToP7uint8_t7int64_t7uint8_t"></span><span id="ArrowBitSetTo__uint8_tP.int64_t.uint8_t"></span><span class="target" id="nanoarrow_8h_1a9900b948593432d514a7175d68c620f7"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w [...]
-<dd><p>Set a boolean value to a bitmap. </p>
+<dt class="sig sig-object cpp" id="_CPPv422ArrowArrayAppendStringP10ArrowArray15ArrowStringView">
+<span id="_CPPv322ArrowArrayAppendStringP10ArrowArray15ArrowStringView"></span><span id="_CPPv222ArrowArrayAppendStringP10ArrowArray15ArrowStringView"></span><span id="ArrowArrayAppendString__ArrowArrayP.ArrowStringView"></span><span class="target" id="group__nanoarrow-array_1gaa8c9118312eda7fc17fb6bf9d721ca9d"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="refere [...]
+<dd><p>Append a string value to an array Returns NANOARROW_OK if value can be exactly represented by the underlying storage type or EINVAL otherwise (e.g., the underlying array is not a string or large string array). </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv414ArrowBitsSetToP7uint8_t7int64_t7int64_t7uint8_t">
-<span id="_CPPv314ArrowBitsSetToP7uint8_t7int64_t7int64_t7uint8_t"></span><span id="_CPPv214ArrowBitsSetToP7uint8_t7int64_t7int64_t7uint8_t"></span><span id="ArrowBitsSetTo__uint8_tP.int64_t.int64_t.uint8_t"></span><span class="target" id="nanoarrow_8h_1aee1398dd8c816dc7014961206bfd1493"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void< [...]
-<dd><p>Set a boolean value to a range in a bitmap. </p>
+<dt class="sig sig-object cpp" id="_CPPv423ArrowArrayFinishElementP10ArrowArray">
+<span id="_CPPv323ArrowArrayFinishElementP10ArrowArray"></span><span id="_CPPv223ArrowArrayFinishElementP10ArrowArray"></span><span id="ArrowArrayFinishElement__ArrowArrayP"></span><span class="target" id="group__nanoarrow-array_1ga357c8828c0ae590c5ae26eac22cce485"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv414ArrowErrorCode" ti [...]
+<dd><p>Finish a nested array element. </p>
+<p>Appends a non-null element to the array based on the first child’s current length. Returns NANOARROW_OK if the item was successfully added or EINVAL if the underlying storage type is not a struct, list, large list, or fixed-size list, or if there was an attempt to add a struct or fixed-size list element where the length of the child array(s) did not match the expected length. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv416ArrowBitCountSetPK7uint8_t7int64_t7int64_t">
-<span id="_CPPv316ArrowBitCountSetPK7uint8_t7int64_t7int64_t"></span><span id="_CPPv216ArrowBitCountSetPK7uint8_t7int64_t7int64_t"></span><span id="ArrowBitCountSet__uint8_tCP.int64_t.int64_t"></span><span class="target" id="nanoarrow_8h_1a4313046e811ff93fdc993423c4904b97"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</span></span> [...]
-<dd><p>Count true values in a bitmap. </p>
+<dt class="sig sig-object cpp" id="_CPPv421ArrowArrayShrinkToFitP10ArrowArray">
+<span id="_CPPv321ArrowArrayShrinkToFitP10ArrowArray"></span><span id="_CPPv221ArrowArrayShrinkToFitP10ArrowArray"></span><span id="ArrowArrayShrinkToFit__ArrowArrayP"></span><span class="target" id="group__nanoarrow-array_1gaa6e5c94f307218fcc22578cacf07cf81"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="A [...]
+<dd><p>Shrink buffer capacity to the size required. </p>
+<p>Also applies shrinking to any child arrays. array must have been allocated using ArrowArrayInit </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv415ArrowBitmapInitP11ArrowBitmap">
-<span id="_CPPv315ArrowBitmapInitP11ArrowBitmap"></span><span id="_CPPv215ArrowBitmapInitP11ArrowBitmap"></span><span id="ArrowBitmapInit__ArrowBitmapP"></span><span class="target" id="nanoarrow_8h_1acd63cc6dd7127602a72a7ba994aaabed"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-n [...]
-<dd><p>Initialize an ArrowBitmap. </p>
-<p>Initialize the builder’s buffer, empty its cache, and reset the size to zero </p>
+<dt class="sig sig-object cpp" id="_CPPv424ArrowArrayFinishBuildingP10ArrowArrayP10ArrowError">
+<span id="_CPPv324ArrowArrayFinishBuildingP10ArrowArrayP10ArrowError"></span><span id="_CPPv224ArrowArrayFinishBuildingP10ArrowArrayP10ArrowError"></span><span id="ArrowArrayFinishBuilding__ArrowArrayP.ArrowErrorP"></span><span class="target" id="group__nanoarrow-array_1ga830400ee3d4dc8cf64c5839a65bf3a34"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><span class="pre">ArrowErrorCode</span></span></a><span class="w"> </span><spa [...]
+<dd><p>Finish building an ArrowArray. </p>
+<p>Flushes any pointers from internal buffers that may have been reallocated into the array-&gt;buffers array and checks the actual size of the buffers against the expected size based on the final length. array must have been allocated using <a class="reference internal" href="#group__nanoarrow-array_1ga2c80b8404ed26bba84ba1a436c2ac26c"><span class="std std-ref">ArrowArrayInit()</span></a> </p>
 </dd></dl>
 
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv418ArrowBitmapReserveP11ArrowBitmap7int64_t">
-<span id="_CPPv318ArrowBitmapReserveP11ArrowBitmap7int64_t"></span><span id="_CPPv218ArrowBitmapReserveP11ArrowBitmap7int64_t"></span><span id="ArrowBitmapReserve__ArrowBitmapP.int64_t"></span><span class="target" id="nanoarrow_8h_1a8a1080cb4f1cb2dce6110f3ddc198fcb"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowErrorCode</span></span> [...]
-<dd><p>Ensure a bitmap builder has at least a given additional capacity. </p>
-<p>Ensures that the buffer has space to append at least additional_size_bits, overallocating when required. </p>
+</div>
 </dd></dl>
 
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv417ArrowBitmapResizeP11ArrowBitmap7int64_tc">
-<span id="_CPPv317ArrowBitmapResizeP11ArrowBitmap7int64_tc"></span><span id="_CPPv217ArrowBitmapResizeP11ArrowBitmap7int64_tc"></span><span id="ArrowBitmapResize__ArrowBitmapP.int64_t.c"></span><span class="target" id="nanoarrow_8h_1a34e4af39131d13cfd213f7f62aaf9fac"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowErrorCode</span></span [...]
-<dd><p>Grow or shrink a bitmap to a given capacity. </p>
-<p>When shrinking the capacity of the bitmap, the bitmap is only reallocated if shrink_to_fit is non-zero. Calling ArrowBitmapResize() does not adjust the buffer’s size member except when shrinking new_capacity_bits to a value less than the current number of bits in the bitmap. </p>
+</section>
+<section id="reading-arrays">
+<h2>Reading arrays<a class="headerlink" href="#reading-arrays" title="Permalink to this heading">#</a></h2>
+<dl>
+<dt class="sig sig-object cpp">
+<span class="target" id="group__nanoarrow-array-view"></span><em><span class="pre">group</span></em> <span class="sig-name descname"><span class="pre">nanoarrow-array-view</span></span></dt>
+<dd><p>These functions read and validate the contents ArrowArray structures. </p>
+<div class="breathe-sectiondef docutils container">
+<p class="breathe-sectiondef-title rubric" id="breathe-section-title-enums">Enums</p>
+<dl class="cpp enum">
+<dt class="sig sig-object cpp" id="_CPPv415ArrowBufferType">
+<span id="_CPPv315ArrowBufferType"></span><span id="_CPPv215ArrowBufferType"></span><span class="target" id="group__nanoarrow-array-view_1gafb87c2db710e94139307b34327b23aeb"></span><span class="k"><span class="pre">enum</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowBufferType</span></span></span><a class="headerlink" href="#_CPPv415ArrowBufferType" title="Permalink to this definition">#</a><br /></dt>
+<dd><p>Functional types of buffers as described in the Arrow Columnar Specification. </p>
+<p><em>Values:</em></p>
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N15ArrowBufferType26NANOARROW_BUFFER_TYPE_NONEE">
+<span id="_CPPv3N15ArrowBufferType26NANOARROW_BUFFER_TYPE_NONEE"></span><span id="_CPPv2N15ArrowBufferType26NANOARROW_BUFFER_TYPE_NONEE"></span><span class="target" id="group__nanoarrow-array-view_1ggafb87c2db710e94139307b34327b23aebaca8312fb6c00d70740a085b24b7e3a01"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_BUFFER_TYPE_NONE</span></span></span><a class="headerlink"  [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N15ArrowBufferType30NANOARROW_BUFFER_TYPE_VALIDITYE">
+<span id="_CPPv3N15ArrowBufferType30NANOARROW_BUFFER_TYPE_VALIDITYE"></span><span id="_CPPv2N15ArrowBufferType30NANOARROW_BUFFER_TYPE_VALIDITYE"></span><span class="target" id="group__nanoarrow-array-view_1ggafb87c2db710e94139307b34327b23aebaf5a1f4c316e22d84f8a81009e9a3c03a"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_BUFFER_TYPE_VALIDITY</span></span></span><a class=" [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N15ArrowBufferType29NANOARROW_BUFFER_TYPE_TYPE_IDE">
+<span id="_CPPv3N15ArrowBufferType29NANOARROW_BUFFER_TYPE_TYPE_IDE"></span><span id="_CPPv2N15ArrowBufferType29NANOARROW_BUFFER_TYPE_TYPE_IDE"></span><span class="target" id="group__nanoarrow-array-view_1ggafb87c2db710e94139307b34327b23aeba77879a1a9be649147492446ada5c9c71"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_BUFFER_TYPE_TYPE_ID</span></span></span><a class="hea [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N15ArrowBufferType34NANOARROW_BUFFER_TYPE_UNION_OFFSETE">
+<span id="_CPPv3N15ArrowBufferType34NANOARROW_BUFFER_TYPE_UNION_OFFSETE"></span><span id="_CPPv2N15ArrowBufferType34NANOARROW_BUFFER_TYPE_UNION_OFFSETE"></span><span class="target" id="group__nanoarrow-array-view_1ggafb87c2db710e94139307b34327b23aeba25de4c0c59ab021677748c3f95530a51"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_BUFFER_TYPE_UNION_OFFSET</span></span></spa [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N15ArrowBufferType33NANOARROW_BUFFER_TYPE_DATA_OFFSETE">
+<span id="_CPPv3N15ArrowBufferType33NANOARROW_BUFFER_TYPE_DATA_OFFSETE"></span><span id="_CPPv2N15ArrowBufferType33NANOARROW_BUFFER_TYPE_DATA_OFFSETE"></span><span class="target" id="group__nanoarrow-array-view_1ggafb87c2db710e94139307b34327b23aeba533f17b74b2778687154fd2a52cb2e34"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_BUFFER_TYPE_DATA_OFFSET</span></span></span>< [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N15ArrowBufferType26NANOARROW_BUFFER_TYPE_DATAE">
+<span id="_CPPv3N15ArrowBufferType26NANOARROW_BUFFER_TYPE_DATAE"></span><span id="_CPPv2N15ArrowBufferType26NANOARROW_BUFFER_TYPE_DATAE"></span><span class="target" id="group__nanoarrow-array-view_1ggafb87c2db710e94139307b34327b23aeba04fce1bd1cd2dec4c43d6820abade32c"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_BUFFER_TYPE_DATA</span></span></span><a class="headerlink"  [...]
+<dd></dd></dl>
+
 </dd></dl>
 
+</div>
+<div class="breathe-sectiondef docutils container">
+<p class="breathe-sectiondef-title rubric" id="breathe-section-title-functions">Functions</p>
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv417ArrowBitmapAppendP11ArrowBitmap7uint8_t7int64_t">
-<span id="_CPPv317ArrowBitmapAppendP11ArrowBitmap7uint8_t7int64_t"></span><span id="_CPPv217ArrowBitmapAppendP11ArrowBitmap7uint8_t7int64_t"></span><span id="ArrowBitmapAppend__ArrowBitmapP.uint8_t.int64_t"></span><span class="target" id="nanoarrow_8h_1ab9fa70f0992b02af7eb0843d7d917db7"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowEr [...]
-<dd><p>Reserve space for and append zero or more of the same boolean value to a bitmap. </p>
+<dt class="sig sig-object cpp" id="_CPPv418ArrowArrayViewInitP14ArrowArrayView9ArrowType">
+<span id="_CPPv318ArrowArrayViewInitP14ArrowArrayView9ArrowType"></span><span id="_CPPv218ArrowArrayViewInitP14ArrowArrayView9ArrowType"></span><span id="ArrowArrayViewInit__ArrowArrayViewP.ArrowType"></span><span class="target" id="group__nanoarrow-array-view_1ga1c72fe53a54f4429172d6256c2db478b"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowArrayViewInit</span></span></span><span [...]
+<dd><p>Initialize the contents of an <a class="reference internal" href="#struct_arrow_array_view"><span class="std std-ref">ArrowArrayView</span></a>. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv423ArrowBitmapAppendUnsafeP11ArrowBitmap7uint8_t7int64_t">
-<span id="_CPPv323ArrowBitmapAppendUnsafeP11ArrowBitmap7uint8_t7int64_t"></span><span id="_CPPv223ArrowBitmapAppendUnsafeP11ArrowBitmap7uint8_t7int64_t"></span><span id="ArrowBitmapAppendUnsafe__ArrowBitmapP.uint8_t.int64_t"></span><span class="target" id="nanoarrow_8h_1acbbb2d68806fca20c4316c922f12978e"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span  [...]
-<dd><p>Append zero or more of the same boolean value to a bitmap. </p>
+<dt class="sig sig-object cpp" id="_CPPv428ArrowArrayViewInitFromSchemaP14ArrowArrayViewP11ArrowSchemaP10ArrowError">
+<span id="_CPPv328ArrowArrayViewInitFromSchemaP14ArrowArrayViewP11ArrowSchemaP10ArrowError"></span><span id="_CPPv228ArrowArrayViewInitFromSchemaP14ArrowArrayViewP11ArrowSchemaP10ArrowError"></span><span id="ArrowArrayViewInitFromSchema__ArrowArrayViewP.ArrowSchemaP.ArrowErrorP"></span><span class="target" id="group__nanoarrow-array-view_1gaaba0e72bc11b0696fef0260d1ecd554f"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><span cl [...]
+<dd><p>Initialize the contents of an <a class="reference internal" href="#struct_arrow_array_view"><span class="std std-ref">ArrowArrayView</span></a> from an ArrowSchema. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv427ArrowBitmapAppendInt8UnsafeP11ArrowBitmapPK6int8_t7int64_t">
-<span id="_CPPv327ArrowBitmapAppendInt8UnsafeP11ArrowBitmapPK6int8_t7int64_t"></span><span id="_CPPv227ArrowBitmapAppendInt8UnsafeP11ArrowBitmapPK6int8_t7int64_t"></span><span id="ArrowBitmapAppendInt8Unsafe__ArrowBitmapP.int8_tCP.int64_t"></span><span class="target" id="nanoarrow_8h_1a543fa468114816549b3478c27e81c72e"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span cl [...]
-<dd><p>Append boolean values encoded as int8_t to a bitmap. </p>
-<p>The values must all be 0 or 1. </p>
+<dt class="sig sig-object cpp" id="_CPPv430ArrowArrayViewAllocateChildrenP14ArrowArrayView7int64_t">
+<span id="_CPPv330ArrowArrayViewAllocateChildrenP14ArrowArrayView7int64_t"></span><span id="_CPPv230ArrowArrayViewAllocateChildrenP14ArrowArrayView7int64_t"></span><span id="ArrowArrayViewAllocateChildren__ArrowArrayViewP.int64_t"></span><span class="target" id="group__nanoarrow-array-view_1ga62b297db8007ff76852958f7d6301e8f"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><span class="pre">ArrowErrorCode</span></span></a><span c [...]
+<dd><p>Allocate the schema_view-&gt;children array. </p>
+<p>Includes the memory for each child struct <a class="reference internal" href="#struct_arrow_array_view"><span class="std std-ref">ArrowArrayView</span></a> </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv428ArrowBitmapAppendInt32UnsafeP11ArrowBitmapPK7int32_t7int64_t">
-<span id="_CPPv328ArrowBitmapAppendInt32UnsafeP11ArrowBitmapPK7int32_t7int64_t"></span><span id="_CPPv228ArrowBitmapAppendInt32UnsafeP11ArrowBitmapPK7int32_t7int64_t"></span><span id="ArrowBitmapAppendInt32Unsafe__ArrowBitmapP.int32_tCP.int64_t"></span><span class="target" id="nanoarrow_8h_1ae1fe367ccb49ec588e829fc654ea9220"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><s [...]
-<dd><p>Append boolean values encoded as int32_t to a bitmap. </p>
-<p>The values must all be 0 or 1. </p>
+<dt class="sig sig-object cpp" id="_CPPv423ArrowArrayViewSetLengthP14ArrowArrayView7int64_t">
+<span id="_CPPv323ArrowArrayViewSetLengthP14ArrowArrayView7int64_t"></span><span id="_CPPv223ArrowArrayViewSetLengthP14ArrowArrayView7int64_t"></span><span id="ArrowArrayViewSetLength__ArrowArrayViewP.int64_t"></span><span class="target" id="group__nanoarrow-array-view_1gae7f1bf5561a443f88801eae25c8c03fe"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowArrayViewSetLength</span></spa [...]
+<dd><p>Set data-independent buffer sizes from length. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv416ArrowBitmapResetP11ArrowBitmap">
-<span id="_CPPv316ArrowBitmapResetP11ArrowBitmap"></span><span id="_CPPv216ArrowBitmapResetP11ArrowBitmap"></span><span id="ArrowBitmapReset__ArrowBitmapP"></span><span class="target" id="nanoarrow_8h_1a1c77e0ca97b6d1ddfe79a867a9ef9c9e"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="si [...]
-<dd><p>Reset a bitmap builder. </p>
-<p>Releases any memory held by buffer, empties the cache, and resets the size to zero </p>
+<dt class="sig sig-object cpp" id="_CPPv422ArrowArrayViewSetArrayP14ArrowArrayViewP10ArrowArrayP10ArrowError">
+<span id="_CPPv322ArrowArrayViewSetArrayP14ArrowArrayViewP10ArrowArrayP10ArrowError"></span><span id="_CPPv222ArrowArrayViewSetArrayP14ArrowArrayViewP10ArrowArrayP10ArrowError"></span><span id="ArrowArrayViewSetArray__ArrowArrayViewP.ArrowArrayP.ArrowErrorP"></span><span class="target" id="group__nanoarrow-array-view_1gada04cd33265cf33ded2701fb1e365648"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><span class="pre">ArrowErrorC [...]
+<dd><p>Set buffer sizes and data pointers from an ArrowArray. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv414ArrowArrayInitP10ArrowArray9ArrowType">
-<span id="_CPPv314ArrowArrayInitP10ArrowArray9ArrowType"></span><span id="_CPPv214ArrowArrayInitP10ArrowArray9ArrowType"></span><span id="ArrowArrayInit__ArrowArrayP.ArrowType"></span><span class="target" id="nanoarrow_8h_1a2c80b8404ed26bba84ba1a436c2ac26c"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowArrayInit</span></span></span><span class="sig-paren">(</span><span cl [...]
-<dd><p>Initialize the fields of an array. </p>
-<p>Initializes the fields and release callback of array. Caller is responsible for calling the array-&gt;release callback if NANOARROW_OK is returned. </p>
+<dt class="sig sig-object cpp" id="_CPPv419ArrowArrayViewResetP14ArrowArrayView">
+<span id="_CPPv319ArrowArrayViewResetP14ArrowArrayView"></span><span id="_CPPv219ArrowArrayViewResetP14ArrowArrayView"></span><span id="ArrowArrayViewReset__ArrowArrayViewP"></span><span class="target" id="group__nanoarrow-array-view_1ga983106893cf481272d96fb91dc6d724c"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowArrayViewReset</span></span></span><span class="sig-paren">(</span [...]
+<dd><p>Reset the contents of an <a class="reference internal" href="#struct_arrow_array_view"><span class="std std-ref">ArrowArrayView</span></a> and frees resources. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv424ArrowArrayInitFromSchemaP10ArrowArrayP11ArrowSchemaP10ArrowError">
-<span id="_CPPv324ArrowArrayInitFromSchemaP10ArrowArrayP11ArrowSchemaP10ArrowError"></span><span id="_CPPv224ArrowArrayInitFromSchemaP10ArrowArrayP11ArrowSchemaP10ArrowError"></span><span id="ArrowArrayInitFromSchema__ArrowArrayP.ArrowSchemaP.ArrowErrorP"></span><span class="target" id="nanoarrow_8h_1a31a82c7fe72e5cc46eeab4713c284f84"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="p [...]
-<dd><p>Initialize the contents of an ArrowArray from an ArrowSchema. </p>
-<p>Caller is responsible for calling the array-&gt;release callback if NANOARROW_OK is returned. </p>
+<dt class="sig sig-object cpp" id="_CPPv420ArrowArrayViewIsNullP14ArrowArrayView7int64_t">
+<span id="_CPPv320ArrowArrayViewIsNullP14ArrowArrayView7int64_t"></span><span id="_CPPv220ArrowArrayViewIsNullP14ArrowArrayView7int64_t"></span><span id="ArrowArrayViewIsNull__ArrowArrayViewP.int64_t"></span><span class="target" id="group__nanoarrow-array-view_1ga01e5b0b30fa58f2ee8c4a7507a74f020"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pr [...]
+<dd><p>Check for a null element in an <a class="reference internal" href="#struct_arrow_array_view"><span class="std std-ref">ArrowArrayView</span></a>. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv426ArrowArrayAllocateChildrenP10ArrowArray7int64_t">
-<span id="_CPPv326ArrowArrayAllocateChildrenP10ArrowArray7int64_t"></span><span id="_CPPv226ArrowArrayAllocateChildrenP10ArrowArray7int64_t"></span><span id="ArrowArrayAllocateChildren__ArrowArrayP.int64_t"></span><span class="target" id="nanoarrow_8h_1a2efc2f2831aabd24e3a894959206b770"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowArrayAllocateChildren</span></span></spa [...]
-<dd><p>Allocate the array-&gt;children array. </p>
-<p>Includes the memory for each child struct ArrowArray, whose members are marked as released and may be subsequently initialized with ArrowArrayInit or moved from an existing ArrowArray. schema must have been allocated using ArrowArrayInit. </p>
+<dt class="sig sig-object cpp" id="_CPPv426ArrowArrayViewGetIntUnsafeP14ArrowArrayView7int64_t">
+<span id="_CPPv326ArrowArrayViewGetIntUnsafeP14ArrowArrayView7int64_t"></span><span id="_CPPv226ArrowArrayViewGetIntUnsafeP14ArrowArrayView7int64_t"></span><span id="ArrowArrayViewGetIntUnsafe__ArrowArrayViewP.int64_t"></span><span class="target" id="group__nanoarrow-array-view_1ga116de101807afd81b0b5949f0141c785"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class=" [...]
+<dd><p>Get an element in an <a class="reference internal" href="#struct_arrow_array_view"><span class="std std-ref">ArrowArrayView</span></a> as an integer. </p>
+<p>This function does not check for null values, that values are actually integers, or that values are within a valid range for an int64. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv428ArrowArrayAllocateDictionaryP10ArrowArray">
-<span id="_CPPv328ArrowArrayAllocateDictionaryP10ArrowArray"></span><span id="_CPPv228ArrowArrayAllocateDictionaryP10ArrowArray"></span><span id="ArrowArrayAllocateDictionary__ArrowArrayP"></span><span class="target" id="nanoarrow_8h_1a0bfe9d4cddb8de65e29ab46ce0b495a4"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowArrayAllocateDictionary</span></span></span><span class="s [...]
-<dd><p>Allocate the array-&gt;dictionary member. </p>
-<p>Includes the memory for the struct ArrowArray, whose contents is marked as released and may be subsequently initialized with ArrowArrayInit or moved from an existing ArrowArray. array must have been allocated using ArrowArrayInit </p>
+<dt class="sig sig-object cpp" id="_CPPv427ArrowArrayViewGetUIntUnsafeP14ArrowArrayView7int64_t">
+<span id="_CPPv327ArrowArrayViewGetUIntUnsafeP14ArrowArrayView7int64_t"></span><span id="_CPPv227ArrowArrayViewGetUIntUnsafeP14ArrowArrayView7int64_t"></span><span id="ArrowArrayViewGetUIntUnsafe__ArrowArrayViewP.int64_t"></span><span class="target" id="group__nanoarrow-array-view_1ga555c0b465f9c77eb26aa363102b11f19"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span clas [...]
+<dd><p>Get an element in an <a class="reference internal" href="#struct_arrow_array_view"><span class="std std-ref">ArrowArrayView</span></a> as an unsigned integer. </p>
+<p>This function does not check for null values, that values are actually integers, or that values are within a valid range for a uint64. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv427ArrowArraySetValidityBitmapP10ArrowArrayP11ArrowBitmap">
-<span id="_CPPv327ArrowArraySetValidityBitmapP10ArrowArrayP11ArrowBitmap"></span><span id="_CPPv227ArrowArraySetValidityBitmapP10ArrowArrayP11ArrowBitmap"></span><span id="ArrowArraySetValidityBitmap__ArrowArrayP.ArrowBitmapP"></span><span class="target" id="nanoarrow_8h_1ad8aef62893226fa4764a9c63eb602080"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowArraySetValidityBitmap</span> [...]
-<dd><p>Set the validity bitmap of an ArrowArray. </p>
-<p>array must have been allocated using ArrowArrayInit </p>
+<dt class="sig sig-object cpp" id="_CPPv429ArrowArrayViewGetDoubleUnsafeP14ArrowArrayView7int64_t">
+<span id="_CPPv329ArrowArrayViewGetDoubleUnsafeP14ArrowArrayView7int64_t"></span><span id="_CPPv229ArrowArrayViewGetDoubleUnsafeP14ArrowArrayView7int64_t"></span><span id="ArrowArrayViewGetDoubleUnsafe__ArrowArrayViewP.int64_t"></span><span class="target" id="group__nanoarrow-array-view_1ga4646cca89ab7fa8165989bc8bb76ad58"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><spa [...]
+<dd><p>Get an element in an <a class="reference internal" href="#struct_arrow_array_view"><span class="std std-ref">ArrowArrayView</span></a> as a double. </p>
+<p>This function does not check for null values, or that values are within a valid range for a double. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv419ArrowArraySetBufferP10ArrowArray7int64_tP11ArrowBuffer">
-<span id="_CPPv319ArrowArraySetBufferP10ArrowArray7int64_tP11ArrowBuffer"></span><span id="_CPPv219ArrowArraySetBufferP10ArrowArray7int64_tP11ArrowBuffer"></span><span id="ArrowArraySetBuffer__ArrowArrayP.int64_t.ArrowBufferP"></span><span class="target" id="nanoarrow_8h_1a52111316e373e24687710f5158da3527"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowArraySetBuffer</span [...]
-<dd><p>Set a buffer of an ArrowArray. </p>
-<p>array must have been allocated using ArrowArrayInit </p>
+<dt class="sig sig-object cpp" id="_CPPv429ArrowArrayViewGetStringUnsafeP14ArrowArrayView7int64_t">
+<span id="_CPPv329ArrowArrayViewGetStringUnsafeP14ArrowArrayView7int64_t"></span><span id="_CPPv229ArrowArrayViewGetStringUnsafeP14ArrowArrayView7int64_t"></span><span id="ArrowArrayViewGetStringUnsafe__ArrowArrayViewP.int64_t"></span><span class="target" id="group__nanoarrow-array-view_1ga4cf36aeb79f398c708f58c091cf3d1ef"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><spa [...]
+<dd><p>Get an element in an <a class="reference internal" href="#struct_arrow_array_view"><span class="std std-ref">ArrowArrayView</span></a> as an <a class="reference internal" href="#struct_arrow_string_view"><span class="std std-ref">ArrowStringView</span></a>. </p>
+<p>This function does not check for null values. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv424ArrowArrayValidityBitmapP10ArrowArray">
-<span id="_CPPv324ArrowArrayValidityBitmapP10ArrowArray"></span><span id="_CPPv224ArrowArrayValidityBitmapP10ArrowArray"></span><span id="ArrowArrayValidityBitmap__ArrowArrayP"></span><span class="target" id="nanoarrow_8h_1a3e0fdea696cd9afabd3eb2a59ea95375"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w">  [...]
-<dd><p>Get the validity bitmap of an ArrowArray. </p>
-<p>array must have been allocated using ArrowArrayInit </p>
+<dt class="sig sig-object cpp" id="_CPPv428ArrowArrayViewGetBytesUnsafeP14ArrowArrayView7int64_t">
+<span id="_CPPv328ArrowArrayViewGetBytesUnsafeP14ArrowArrayView7int64_t"></span><span id="_CPPv228ArrowArrayViewGetBytesUnsafeP14ArrowArrayView7int64_t"></span><span id="ArrowArrayViewGetBytesUnsafe__ArrowArrayViewP.int64_t"></span><span class="target" id="group__nanoarrow-array-view_1ga6cb0bd30d8a95ff5dacf0232d401e512"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span c [...]
+<dd><p>Get an element in an <a class="reference internal" href="#struct_arrow_array_view"><span class="std std-ref">ArrowArrayView</span></a> as an <a class="reference internal" href="#struct_arrow_buffer_view"><span class="std std-ref">ArrowBufferView</span></a>. </p>
+<p>This function does not check for null values. </p>
 </dd></dl>
 
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv416ArrowArrayBufferP10ArrowArray7int64_t">
-<span id="_CPPv316ArrowArrayBufferP10ArrowArray7int64_t"></span><span id="_CPPv216ArrowArrayBufferP10ArrowArray7int64_t"></span><span id="ArrowArrayBuffer__ArrowArrayP.int64_t"></span><span class="target" id="nanoarrow_8h_1afbd17d94c188c9760f5bc91195683bd8"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w">  [...]
-<dd><p>Get a buffer of an ArrowArray. </p>
-<p>array must have been allocated using ArrowArrayInit </p>
+</div>
+<dl class="cpp struct">
+<dt class="sig sig-object cpp" id="_CPPv414ArrowArrayView">
+<span id="_CPPv314ArrowArrayView"></span><span id="_CPPv214ArrowArrayView"></span><span id="ArrowArrayView"></span><span class="target" id="struct_arrow_array_view"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowArrayView</span></span></span><a class="headerlink" href="#_CPPv414ArrowArrayView" title="Permalink to this definition">#</a><br /></dt>
+<dd><div class="docutils container">
+<em>#include &lt;nanoarrow_types.h&gt;</em></div>
+<p>A non-owning view of an ArrowArray. </p>
+<p>This data structure provides access to the values contained within an ArrowArray with fields provided in a more readily-extractible form. You can re-use an <a class="reference internal" href="#struct_arrow_array_view"><span class="std std-ref">ArrowArrayView</span></a> for multiple ArrowArrays with the same storage type, or use it to represent a hypothetical ArrowArray that does not exist yet. </p>
+<div class="breathe-sectiondef docutils container">
+<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
+<dl class="cpp var">
+<dt class="sig sig-object cpp" id="_CPPv4N14ArrowArrayView5arrayE">
+<span id="_CPPv3N14ArrowArrayView5arrayE"></span><span id="_CPPv2N14ArrowArrayView5arrayE"></span><span id="ArrowArrayView::array__ArrowArrayP"></span><span class="target" id="struct_arrow_array_view_1a3035bf0a4b816cf1ea002575fe1f7182"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowArray</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span cl [...]
+<dd><p>The underlying ArrowArray or NULL if it has not been set. </p>
 </dd></dl>
 
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv424ArrowArrayStartAppendingP10ArrowArray">
-<span id="_CPPv324ArrowArrayStartAppendingP10ArrowArray"></span><span id="_CPPv224ArrowArrayStartAppendingP10ArrowArray"></span><span id="ArrowArrayStartAppending__ArrowArrayP"></span><span class="target" id="nanoarrow_8h_1aab61ae0a0eb698c817bee25ee3a750f5"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowErrorCode</span></span><span cla [...]
-<dd><p>Start element-wise appending to an ArrowArray. </p>
-<p>Initializes any values needed to use ArrowArrayAppend*() functions. All element-wise appenders append by value and return EINVAL if the exact value cannot be represented by the underlying storage type. array must have been allocated using ArrowArrayInit </p>
+<dl class="cpp var">
+<dt class="sig sig-object cpp" id="_CPPv4N14ArrowArrayView12storage_typeE">
+<span id="_CPPv3N14ArrowArrayView12storage_typeE"></span><span id="_CPPv2N14ArrowArrayView12storage_typeE"></span><span id="ArrowArrayView::storage_type__ArrowType"></span><span class="target" id="struct_arrow_array_view_1aed4b4c470602e293fa1616c9c986b876"></span><span class="k"><span class="pre">enum</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv49ArrowType" title="ArrowType"><span class="n"><span class="pre">ArrowType</span></span></a><span class="w"> < [...]
+<dd><p>The type used to store values in this array. </p>
+<p>This type represents only the minimum required information to extract values from the array buffers (e.g., for a Date32 array, this value will be NANOARROW_TYPE_INT32). For dictionary-encoded arrays, this will be the index type. </p>
 </dd></dl>
 
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv417ArrowArrayReserveP10ArrowArray7int64_t">
-<span id="_CPPv317ArrowArrayReserveP10ArrowArray7int64_t"></span><span id="_CPPv217ArrowArrayReserveP10ArrowArray7int64_t"></span><span id="ArrowArrayReserve__ArrowArrayP.int64_t"></span><span class="target" id="nanoarrow_8h_1aa2644de6315ff68a694370c51948071e"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowArrayReserve</span></span></span><span class="sig-paren">(</span><s [...]
-<dd><p>Reserve space for future appends. </p>
-<p>For buffer sizes that can be calculated (i.e., not string data buffers or child array sizes for non-fixed-size arrays), recursively reserve space for additional elements. This is useful for reducing the number of reallocations that occur using the item-wise appenders. </p>
+<dl class="cpp var">
+<dt class="sig sig-object cpp" id="_CPPv4N14ArrowArrayView6layoutE">
+<span id="_CPPv3N14ArrowArrayView6layoutE"></span><span id="_CPPv2N14ArrowArrayView6layoutE"></span><span id="ArrowArrayView::layout__ArrowLayout"></span><span class="target" id="struct_arrow_array_view_1a073cd0c361fc67550322e299d1560290"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv411ArrowLayout" title="ArrowLayout"><span class="n"><span class="pre">ArrowLayout</span></span></a><span class="w"> </span><sp [...]
+<dd><p>The buffer types, strides, and sizes of this Array’s buffers. </p>
 </dd></dl>
 
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv420ArrowArrayAppendNullP10ArrowArray7int64_t">
-<span id="_CPPv320ArrowArrayAppendNullP10ArrowArray7int64_t"></span><span id="_CPPv220ArrowArrayAppendNullP10ArrowArray7int64_t"></span><span id="ArrowArrayAppendNull__ArrowArrayP.int64_t"></span><span class="target" id="nanoarrow_8h_1a7b4c3eb74f4bc6c6155599fb2658f927"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowErrorCode</span></sp [...]
-<dd><p>Append a null value to an array. </p>
+<dl class="cpp var">
+<dt class="sig sig-object cpp" id="_CPPv4N14ArrowArrayView12buffer_viewsE">
+<span id="_CPPv3N14ArrowArrayView12buffer_viewsE"></span><span id="_CPPv2N14ArrowArrayView12buffer_viewsE"></span><span id="ArrowArrayView::buffer_views__ArrowBufferViewA"></span><span class="target" id="struct_arrow_array_view_1a35e95d9913866d0c2255f5dbdec8d5bf"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv415ArrowBufferView" title="ArrowBufferView"><span class="n"><span class="pre">ArrowBufferView</span>< [...]
+<dd><p>This Array’s buffers as <a class="reference internal" href="#struct_arrow_buffer_view"><span class="std std-ref">ArrowBufferView</span></a> objects. </p>
+</dd></dl>
+
+<dl class="cpp var">
+<dt class="sig sig-object cpp" id="_CPPv4N14ArrowArrayView10n_childrenE">
+<span id="_CPPv3N14ArrowArrayView10n_childrenE"></span><span id="_CPPv2N14ArrowArrayView10n_childrenE"></span><span id="ArrowArrayView::n_children__int64_t"></span><span class="target" id="struct_arrow_array_view_1ab095b2788ef615d619bd6f8ff696c5d8"></span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">n_children</span></span></span><a class="headerlink" href="#_CPPv4N14ArrowArrayView10n_chil [...]
+<dd><p>The number of children of this view. </p>
+</dd></dl>
+
+<dl class="cpp var">
+<dt class="sig sig-object cpp" id="_CPPv4N14ArrowArrayView8childrenE">
+<span id="_CPPv3N14ArrowArrayView8childrenE"></span><span id="_CPPv2N14ArrowArrayView8childrenE"></span><span id="ArrowArrayView::children__ArrowArrayViewPP"></span><span class="target" id="struct_arrow_array_view_1ace687eb6d009aa26a412beb55513cb55"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv414ArrowArrayView" title="ArrowArrayView"><span class="n"><span class="pre">ArrowArrayView</span></span></a><span c [...]
+<dd><p>Pointers to views of this array’s children. </p>
+</dd></dl>
+
+</div>
 </dd></dl>
 
-<dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv419ArrowArrayAppendIntP10ArrowArray7int64_t">
-<span id="_CPPv319ArrowArrayAppendIntP10ArrowArray7int64_t"></span><span id="_CPPv219ArrowArrayAppendIntP10ArrowArray7int64_t"></span><span id="ArrowArrayAppendInt__ArrowArrayP.int64_t"></span><span class="target" id="nanoarrow_8h_1ac6b99a2b05db4c956def99131f803994"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowErrorCode</span></span> [...]
-<dd><p>Append a signed integer value to an array. </p>
-<p>Returns NANOARROW_OK if value can be exactly represented by the underlying storage type or EINVAL otherwise (e.g., value is outside the valid array range). </p>
 </dd></dl>
 
+</section>
+<section id="owning-growable-buffers">
+<h2>Owning, growable buffers<a class="headerlink" href="#owning-growable-buffers" title="Permalink to this heading">#</a></h2>
+<dl>
+<dt class="sig sig-object cpp">
+<span class="target" id="group__nanoarrow-buffer"></span><em><span class="pre">group</span></em> <span class="sig-name descname"><span class="pre">nanoarrow-buffer</span></span></dt>
+<dd><div class="breathe-sectiondef docutils container">
+<p class="breathe-sectiondef-title rubric" id="breathe-section-title-functions">Functions</p>
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv420ArrowArrayAppendUIntP10ArrowArray8uint64_t">
-<span id="_CPPv320ArrowArrayAppendUIntP10ArrowArray8uint64_t"></span><span id="_CPPv220ArrowArrayAppendUIntP10ArrowArray8uint64_t"></span><span id="ArrowArrayAppendUInt__ArrowArrayP.uint64_t"></span><span class="target" id="nanoarrow_8h_1ae91f4c278859a8457b8090ca4dfd1e31"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowErrorCode</span>< [...]
-<dd><p>Append an unsigned integer value to an array. </p>
-<p>Returns NANOARROW_OK if value can be exactly represented by the underlying storage type or EINVAL otherwise (e.g., value is outside the valid array range). </p>
+<dt class="sig sig-object cpp" id="_CPPv415ArrowBufferInitP11ArrowBuffer">
+<span id="_CPPv315ArrowBufferInitP11ArrowBuffer"></span><span id="_CPPv215ArrowBufferInitP11ArrowBuffer"></span><span id="ArrowBufferInit__ArrowBufferP"></span><span class="target" id="group__nanoarrow-buffer_1gac85f9e1b00d78ebc2ac388f4fbc3c160"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span  [...]
+<dd><p>Initialize an <a class="reference internal" href="#struct_arrow_buffer"><span class="std std-ref">ArrowBuffer</span></a>. </p>
+<p>Initialize a buffer with a NULL, zero-size buffer using the default buffer allocator. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv422ArrowArrayAppendDoubleP10ArrowArrayd">
-<span id="_CPPv322ArrowArrayAppendDoubleP10ArrowArrayd"></span><span id="_CPPv222ArrowArrayAppendDoubleP10ArrowArrayd"></span><span id="ArrowArrayAppendDouble__ArrowArrayP.double"></span><span class="target" id="nanoarrow_8h_1a2e03258b386ed299928471394586b185"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowErrorCode</span></span><span  [...]
-<dd><p>Append a double value to an array. </p>
-<p>Returns NANOARROW_OK if value can be exactly represented by the underlying storage type or EINVAL otherwise (e.g., value is outside the valid array range or there is an attempt to append a non-integer to an array with an integer storage type). </p>
+<dt class="sig sig-object cpp" id="_CPPv423ArrowBufferSetAllocatorP11ArrowBuffer20ArrowBufferAllocator">
+<span id="_CPPv323ArrowBufferSetAllocatorP11ArrowBuffer20ArrowBufferAllocator"></span><span id="_CPPv223ArrowBufferSetAllocatorP11ArrowBuffer20ArrowBufferAllocator"></span><span id="ArrowBufferSetAllocator__ArrowBufferP.ArrowBufferAllocator"></span><span class="target" id="group__nanoarrow-buffer_1gaad4ce79883f9eecc8350f57c53ca3b6c"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> < [...]
+<dd><p>Set a newly-initialized buffer’s allocator. </p>
+<p>Returns EINVAL if the buffer has already been allocated. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv421ArrowArrayAppendBytesP10ArrowArray15ArrowBufferView">
-<span id="_CPPv321ArrowArrayAppendBytesP10ArrowArray15ArrowBufferView"></span><span id="_CPPv221ArrowArrayAppendBytesP10ArrowArray15ArrowBufferView"></span><span id="ArrowArrayAppendBytes__ArrowArrayP.ArrowBufferView"></span><span class="target" id="nanoarrow_8h_1a40e1dce8b43124c9710538842e68f944"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="p [...]
-<dd><p>Append a string of bytes to an array. </p>
-<p>Returns NANOARROW_OK if value can be exactly represented by the underlying storage type or EINVAL otherwise (e.g., the underlying array is not a binary, string, large binary, large string, or fixed-size binary array, or value is the wrong size for a fixed-size binary array). </p>
+<dt class="sig sig-object cpp" id="_CPPv416ArrowBufferResetP11ArrowBuffer">
+<span id="_CPPv316ArrowBufferResetP11ArrowBuffer"></span><span id="_CPPv216ArrowBufferResetP11ArrowBuffer"></span><span id="ArrowBufferReset__ArrowBufferP"></span><span class="target" id="group__nanoarrow-buffer_1ga343c15a9d511553878c0c2f54c355d6e"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><sp [...]
+<dd><p>Reset an <a class="reference internal" href="#struct_arrow_buffer"><span class="std std-ref">ArrowBuffer</span></a>. </p>
+<p>Releases the buffer using the allocator’s free method if the buffer’s data member is non-null, sets the data member to NULL, and sets the buffer’s size and capacity to 0. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv422ArrowArrayAppendStringP10ArrowArray15ArrowStringView">
-<span id="_CPPv322ArrowArrayAppendStringP10ArrowArray15ArrowStringView"></span><span id="_CPPv222ArrowArrayAppendStringP10ArrowArray15ArrowStringView"></span><span id="ArrowArrayAppendString__ArrowArrayP.ArrowStringView"></span><span class="target" id="nanoarrow_8h_1aa8c9118312eda7fc17fb6bf9d721ca9d"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class [...]
-<dd><p>Append a string value to an array Returns NANOARROW_OK if value can be exactly represented by the underlying storage type or EINVAL otherwise (e.g., the underlying array is not a string or large string array). </p>
+<dt class="sig sig-object cpp" id="_CPPv415ArrowBufferMoveP11ArrowBufferP11ArrowBuffer">
+<span id="_CPPv315ArrowBufferMoveP11ArrowBufferP11ArrowBuffer"></span><span id="_CPPv215ArrowBufferMoveP11ArrowBufferP11ArrowBuffer"></span><span id="ArrowBufferMove__ArrowBufferP.ArrowBufferP"></span><span class="target" id="group__nanoarrow-buffer_1ga1c82fbbedca64d91977a03ca00818f6d"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</s [...]
+<dd><p>Move an <a class="reference internal" href="#struct_arrow_buffer"><span class="std std-ref">ArrowBuffer</span></a>. </p>
+<p>Transfers the buffer data and lifecycle management to another address and resets buffer. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv423ArrowArrayFinishElementP10ArrowArray">
-<span id="_CPPv323ArrowArrayFinishElementP10ArrowArray"></span><span id="_CPPv223ArrowArrayFinishElementP10ArrowArray"></span><span id="ArrowArrayFinishElement__ArrowArrayP"></span><span class="target" id="nanoarrow_8h_1a357c8828c0ae590c5ae26eac22cce485"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class= [...]
-<dd><p>Finish a nested array element. </p>
-<p>Appends a non-null element to the array based on the first child’s current length. Returns NANOARROW_OK if the item was successfully added or EINVAL if the underlying storage type is not a struct, list, large list, or fixed-size list, or if there was an attempt to add a struct or fixed-size list element where the length of the child array(s) did not match the expected length. </p>
+<dt class="sig sig-object cpp" id="_CPPv417ArrowBufferResizeP11ArrowBuffer7int64_tc">
+<span id="_CPPv317ArrowBufferResizeP11ArrowBuffer7int64_tc"></span><span id="_CPPv217ArrowBufferResizeP11ArrowBuffer7int64_tc"></span><span id="ArrowBufferResize__ArrowBufferP.int64_t.c"></span><span class="target" id="group__nanoarrow-buffer_1ga7334c70b8fd2db62de0645cce9bb6087"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv414Arro [...]
+<dd><p>Grow or shrink a buffer to a given capacity. </p>
+<p>When shrinking the capacity of the buffer, the buffer is only reallocated if shrink_to_fit is non-zero. Calling ArrowBufferResize() does not adjust the buffer’s size member except to ensure that the invariant capacity &gt;= size remains true. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv421ArrowArrayShrinkToFitP10ArrowArray">
-<span id="_CPPv321ArrowArrayShrinkToFitP10ArrowArray"></span><span id="_CPPv221ArrowArrayShrinkToFitP10ArrowArray"></span><span id="ArrowArrayShrinkToFit__ArrowArrayP"></span><span class="target" id="nanoarrow_8h_1aa6e5c94f307218fcc22578cacf07cf81"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> < [...]
-<dd><p>Shrink buffer capacity to the size required. </p>
-<p>Also applies shrinking to any child arrays. array must have been allocated using ArrowArrayInit </p>
+<dt class="sig sig-object cpp" id="_CPPv418ArrowBufferReserveP11ArrowBuffer7int64_t">
+<span id="_CPPv318ArrowBufferReserveP11ArrowBuffer7int64_t"></span><span id="_CPPv218ArrowBufferReserveP11ArrowBuffer7int64_t"></span><span id="ArrowBufferReserve__ArrowBufferP.int64_t"></span><span class="target" id="group__nanoarrow-buffer_1ga355bfda26c6bd1db1765076a042ba345"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv414Arrow [...]
+<dd><p>Ensure a buffer has at least a given additional capacity. </p>
+<p>Ensures that the buffer has space to append at least additional_size_bytes, overallocating when required. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv424ArrowArrayFinishBuildingP10ArrowArrayP10ArrowError">
-<span id="_CPPv324ArrowArrayFinishBuildingP10ArrowArrayP10ArrowError"></span><span id="_CPPv224ArrowArrayFinishBuildingP10ArrowArrayP10ArrowError"></span><span id="ArrowArrayFinishBuilding__ArrowArrayP.ArrowErrorP"></span><span class="target" id="nanoarrow_8h_1a830400ee3d4dc8cf64c5839a65bf3a34"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowArrayFinishBuilding</span></span [...]
-<dd><p>Finish building an ArrowArray. </p>
-<p>Flushes any pointers from internal buffers that may have been reallocated into the array-&gt;buffers array and checks the actual size of the buffers against the expected size based on the final length. array must have been allocated using ArrowArrayInit </p>
+<dt class="sig sig-object cpp" id="_CPPv423ArrowBufferAppendUnsafeP11ArrowBufferPKv7int64_t">
+<span id="_CPPv323ArrowBufferAppendUnsafeP11ArrowBufferPKv7int64_t"></span><span id="_CPPv223ArrowBufferAppendUnsafeP11ArrowBufferPKv7int64_t"></span><span id="ArrowBufferAppendUnsafe__ArrowBufferP.voidCP.int64_t"></span><span class="target" id="group__nanoarrow-buffer_1ga6afb02edfa7936ecae95936672c768bb"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span [...]
+<dd><p>Write data to buffer and increment the buffer size. </p>
+<p>This function does not check that buffer has the required capacity </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv418ArrowArrayViewInitP14ArrowArrayView9ArrowType">
-<span id="_CPPv318ArrowArrayViewInitP14ArrowArrayView9ArrowType"></span><span id="_CPPv218ArrowArrayViewInitP14ArrowArrayView9ArrowType"></span><span id="ArrowArrayViewInit__ArrowArrayViewP.ArrowType"></span><span class="target" id="nanoarrow_8h_1a1c72fe53a54f4429172d6256c2db478b"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowArrayViewInit</span></span></span><span class="sig-pare [...]
-<dd><p>Initialize the contents of an ArrowArrayView. </p>
+<dt class="sig sig-object cpp" id="_CPPv417ArrowBufferAppendP11ArrowBufferPKv7int64_t">
+<span id="_CPPv317ArrowBufferAppendP11ArrowBufferPKv7int64_t"></span><span id="_CPPv217ArrowBufferAppendP11ArrowBufferPKv7int64_t"></span><span id="ArrowBufferAppend__ArrowBufferP.voidCP.int64_t"></span><span class="target" id="group__nanoarrow-buffer_1gac8c2d733e4c7313aebc4d248f39f6cbb"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="#_CP [...]
+<dd><p>Write data to buffer and increment the buffer size. </p>
+<p>This function writes and ensures that the buffer has the required capacity, possibly by reallocating the buffer. Like ArrowBufferReserve, this will overallocate when reallocation is required. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv428ArrowArrayViewInitFromSchemaP14ArrowArrayViewP11ArrowSchemaP10ArrowError">
-<span id="_CPPv328ArrowArrayViewInitFromSchemaP14ArrowArrayViewP11ArrowSchemaP10ArrowError"></span><span id="_CPPv228ArrowArrayViewInitFromSchemaP14ArrowArrayViewP11ArrowSchemaP10ArrowError"></span><span id="ArrowArrayViewInitFromSchema__ArrowArrayViewP.ArrowSchemaP.ArrowErrorP"></span><span class="target" id="nanoarrow_8h_1aaba0e72bc11b0696fef0260d1ecd554f"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"><span  [...]
-<dd><p>Initialize the contents of an ArrowArrayView from an ArrowSchema. </p>
+<dt class="sig sig-object cpp" id="_CPPv421ArrowBufferAppendFillP11ArrowBuffer7uint8_t7int64_t">
+<span id="_CPPv321ArrowBufferAppendFillP11ArrowBuffer7uint8_t7int64_t"></span><span id="_CPPv221ArrowBufferAppendFillP11ArrowBuffer7uint8_t7int64_t"></span><span id="ArrowBufferAppendFill__ArrowBufferP.uint8_t.int64_t"></span><span class="target" id="group__nanoarrow-buffer_1gac4bbb86e0b2d23b298394f6e646243e7"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="referen [...]
+<dd><p>Write fill to buffer and increment the buffer size. </p>
+<p>This function writes the specified number of fill bytes and ensures that the buffer has the required capacity, </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv430ArrowArrayViewAllocateChildrenP14ArrowArrayView7int64_t">
-<span id="_CPPv330ArrowArrayViewAllocateChildrenP14ArrowArrayView7int64_t"></span><span id="_CPPv230ArrowArrayViewAllocateChildrenP14ArrowArrayView7int64_t"></span><span id="ArrowArrayViewAllocateChildren__ArrowArrayViewP.int64_t"></span><span class="target" id="nanoarrow_8h_1a62b297db8007ff76852958f7d6301e8f"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowArrayViewAllocat [...]
-<dd><p>Allocate the schema_view-&gt;children array. </p>
-<p>Includes the memory for each child struct ArrowArrayView </p>
+<dt class="sig sig-object cpp" id="_CPPv421ArrowBufferAppendInt8P11ArrowBuffer6int8_t">
+<span id="_CPPv321ArrowBufferAppendInt8P11ArrowBuffer6int8_t"></span><span id="_CPPv221ArrowBufferAppendInt8P11ArrowBuffer6int8_t"></span><span id="ArrowBufferAppendInt8__ArrowBufferP.int8_t"></span><span class="target" id="group__nanoarrow-buffer_1gaeea176364336f15792f3806b6a83a556"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv41 [...]
+<dd><p>Write an 8-bit integer to a buffer. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv423ArrowArrayViewSetLengthP14ArrowArrayView7int64_t">
-<span id="_CPPv323ArrowArrayViewSetLengthP14ArrowArrayView7int64_t"></span><span id="_CPPv223ArrowArrayViewSetLengthP14ArrowArrayView7int64_t"></span><span id="ArrowArrayViewSetLength__ArrowArrayViewP.int64_t"></span><span class="target" id="nanoarrow_8h_1ae7f1bf5561a443f88801eae25c8c03fe"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowArrayViewSetLength</span></span></span><span c [...]
-<dd><p>Set data-independent buffer sizes from length. </p>
+<dt class="sig sig-object cpp" id="_CPPv422ArrowBufferAppendUInt8P11ArrowBuffer7uint8_t">
+<span id="_CPPv322ArrowBufferAppendUInt8P11ArrowBuffer7uint8_t"></span><span id="_CPPv222ArrowBufferAppendUInt8P11ArrowBuffer7uint8_t"></span><span id="ArrowBufferAppendUInt8__ArrowBufferP.uint8_t"></span><span class="target" id="group__nanoarrow-buffer_1gabf2e92c5b3824fda3f717e57b7e0c45e"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="#_ [...]
+<dd><p>Write an unsigned 8-bit integer to a buffer. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv422ArrowArrayViewSetArrayP14ArrowArrayViewP10ArrowArrayP10ArrowError">
-<span id="_CPPv322ArrowArrayViewSetArrayP14ArrowArrayViewP10ArrowArrayP10ArrowError"></span><span id="_CPPv222ArrowArrayViewSetArrayP14ArrowArrayViewP10ArrowArrayP10ArrowError"></span><span id="ArrowArrayViewSetArray__ArrowArrayViewP.ArrowArrayP.ArrowErrorP"></span><span class="target" id="nanoarrow_8h_1ada04cd33265cf33ded2701fb1e365648"></span><span class="n"><span class="pre">ArrowErrorCode</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class [...]
-<dd><p>Set buffer sizes and data pointers from an ArrowArray. </p>
+<dt class="sig sig-object cpp" id="_CPPv422ArrowBufferAppendInt16P11ArrowBuffer7int16_t">
+<span id="_CPPv322ArrowBufferAppendInt16P11ArrowBuffer7int16_t"></span><span id="_CPPv222ArrowBufferAppendInt16P11ArrowBuffer7int16_t"></span><span id="ArrowBufferAppendInt16__ArrowBufferP.int16_t"></span><span class="target" id="group__nanoarrow-buffer_1gab09ee38169d62e8ef5314dd9e7fde233"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="#_ [...]
+<dd><p>Write a 16-bit integer to a buffer. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv419ArrowArrayViewResetP14ArrowArrayView">
-<span id="_CPPv319ArrowArrayViewResetP14ArrowArrayView"></span><span id="_CPPv219ArrowArrayViewResetP14ArrowArrayView"></span><span id="ArrowArrayViewReset__ArrowArrayViewP"></span><span class="target" id="nanoarrow_8h_1a983106893cf481272d96fb91dc6d724c"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowArrayViewReset</span></span></span><span class="sig-paren">(</span><span class="k" [...]
-<dd><p>Reset the contents of an ArrowArrayView and frees resources. </p>
+<dt class="sig sig-object cpp" id="_CPPv423ArrowBufferAppendUInt16P11ArrowBuffer8uint16_t">
+<span id="_CPPv323ArrowBufferAppendUInt16P11ArrowBuffer8uint16_t"></span><span id="_CPPv223ArrowBufferAppendUInt16P11ArrowBuffer8uint16_t"></span><span id="ArrowBufferAppendUInt16__ArrowBufferP.uint16_t"></span><span class="target" id="group__nanoarrow-buffer_1ga86dc0ae3a1d57382dbe4da4b5118dd6b"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" hr [...]
+<dd><p>Write an unsigned 16-bit integer to a buffer. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv420ArrowArrayViewIsNullP14ArrowArrayView7int64_t">
-<span id="_CPPv320ArrowArrayViewIsNullP14ArrowArrayView7int64_t"></span><span id="_CPPv220ArrowArrayViewIsNullP14ArrowArrayView7int64_t"></span><span id="ArrowArrayViewIsNull__ArrowArrayViewP.int64_t"></span><span class="target" id="nanoarrow_8h_1a01e5b0b30fa58f2ee8c4a7507a74f020"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">int8_t</span> [...]
-<dd><p>Check for a null element in an ArrowArrayView. </p>
+<dt class="sig sig-object cpp" id="_CPPv422ArrowBufferAppendInt32P11ArrowBuffer7int32_t">
+<span id="_CPPv322ArrowBufferAppendInt32P11ArrowBuffer7int32_t"></span><span id="_CPPv222ArrowBufferAppendInt32P11ArrowBuffer7int32_t"></span><span id="ArrowBufferAppendInt32__ArrowBufferP.int32_t"></span><span class="target" id="group__nanoarrow-buffer_1ga5c36ac40ea35b61b1f845fe4a7ea5247"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="#_ [...]
+<dd><p>Write a 32-bit integer to a buffer. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv426ArrowArrayViewGetIntUnsafeP14ArrowArrayView7int64_t">
-<span id="_CPPv326ArrowArrayViewGetIntUnsafeP14ArrowArrayView7int64_t"></span><span id="_CPPv226ArrowArrayViewGetIntUnsafeP14ArrowArrayView7int64_t"></span><span id="ArrowArrayViewGetIntUnsafe__ArrowArrayViewP.int64_t"></span><span class="target" id="nanoarrow_8h_1a116de101807afd81b0b5949f0141c785"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class=" [...]
-<dd><p>Get an element in an ArrowArrayView as an integer. </p>
-<p>This function does not check for null values, that values are actually integers, or that values are within a valid range for an int64. </p>
+<dt class="sig sig-object cpp" id="_CPPv423ArrowBufferAppendUInt32P11ArrowBuffer8uint32_t">
+<span id="_CPPv323ArrowBufferAppendUInt32P11ArrowBuffer8uint32_t"></span><span id="_CPPv223ArrowBufferAppendUInt32P11ArrowBuffer8uint32_t"></span><span id="ArrowBufferAppendUInt32__ArrowBufferP.uint32_t"></span><span class="target" id="group__nanoarrow-buffer_1ga82b0e69bc74da1362f9bde4c00856143"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" hr [...]
+<dd><p>Write an unsigned 32-bit integer to a buffer. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv427ArrowArrayViewGetUIntUnsafeP14ArrowArrayView7int64_t">
-<span id="_CPPv327ArrowArrayViewGetUIntUnsafeP14ArrowArrayView7int64_t"></span><span id="_CPPv227ArrowArrayViewGetUIntUnsafeP14ArrowArrayView7int64_t"></span><span id="ArrowArrayViewGetUIntUnsafe__ArrowArrayViewP.int64_t"></span><span class="target" id="nanoarrow_8h_1a555c0b465f9c77eb26aa363102b11f19"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span clas [...]
-<dd><p>Get an element in an ArrowArrayView as an unsigned integer. </p>
-<p>This function does not check for null values, that values are actually integers, or that values are within a valid range for a uint64. </p>
+<dt class="sig sig-object cpp" id="_CPPv422ArrowBufferAppendInt64P11ArrowBuffer7int64_t">
+<span id="_CPPv322ArrowBufferAppendInt64P11ArrowBuffer7int64_t"></span><span id="_CPPv222ArrowBufferAppendInt64P11ArrowBuffer7int64_t"></span><span id="ArrowBufferAppendInt64__ArrowBufferP.int64_t"></span><span class="target" id="group__nanoarrow-buffer_1ga7917aee52cf3225e0ec8982dcfd9a570"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="#_ [...]
+<dd><p>Write a 64-bit integer to a buffer. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv429ArrowArrayViewGetDoubleUnsafeP14ArrowArrayView7int64_t">
-<span id="_CPPv329ArrowArrayViewGetDoubleUnsafeP14ArrowArrayView7int64_t"></span><span id="_CPPv229ArrowArrayViewGetDoubleUnsafeP14ArrowArrayView7int64_t"></span><span id="ArrowArrayViewGetDoubleUnsafe__ArrowArrayViewP.int64_t"></span><span class="target" id="nanoarrow_8h_1a4646cca89ab7fa8165989bc8bb76ad58"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><sp [...]
-<dd><p>Get an element in an ArrowArrayView as a double. </p>
-<p>This function does not check for null values, or that values are within a valid range for a double. </p>
+<dt class="sig sig-object cpp" id="_CPPv423ArrowBufferAppendUInt64P11ArrowBuffer8uint64_t">
+<span id="_CPPv323ArrowBufferAppendUInt64P11ArrowBuffer8uint64_t"></span><span id="_CPPv223ArrowBufferAppendUInt64P11ArrowBuffer8uint64_t"></span><span id="ArrowBufferAppendUInt64__ArrowBufferP.uint64_t"></span><span class="target" id="group__nanoarrow-buffer_1ga625f65a799abf1efa39002b6dcacb709"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" hr [...]
+<dd><p>Write an unsigned 64-bit integer to a buffer. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv429ArrowArrayViewGetStringUnsafeP14ArrowArrayView7int64_t">
-<span id="_CPPv329ArrowArrayViewGetStringUnsafeP14ArrowArrayView7int64_t"></span><span id="_CPPv229ArrowArrayViewGetStringUnsafeP14ArrowArrayView7int64_t"></span><span id="ArrowArrayViewGetStringUnsafe__ArrowArrayViewP.int64_t"></span><span class="target" id="nanoarrow_8h_1a4cf36aeb79f398c708f58c091cf3d1ef"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><spa [...]
-<dd><p>Get an element in an ArrowArrayView as an ArrowStringView. </p>
-<p>This function does not check for null values. </p>
+<dt class="sig sig-object cpp" id="_CPPv423ArrowBufferAppendDoubleP11ArrowBufferd">
+<span id="_CPPv323ArrowBufferAppendDoubleP11ArrowBufferd"></span><span id="_CPPv223ArrowBufferAppendDoubleP11ArrowBufferd"></span><span id="ArrowBufferAppendDouble__ArrowBufferP.double"></span><span class="target" id="group__nanoarrow-buffer_1ga92cdc5b9edcfc816fdd12f38be36eb12"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv414Arrow [...]
+<dd><p>Write a double to a buffer. </p>
 </dd></dl>
 
 <dl class="cpp function">
-<dt class="sig sig-object cpp" id="_CPPv428ArrowArrayViewGetBytesUnsafeP14ArrowArrayView7int64_t">
-<span id="_CPPv328ArrowArrayViewGetBytesUnsafeP14ArrowArrayView7int64_t"></span><span id="_CPPv228ArrowArrayViewGetBytesUnsafeP14ArrowArrayView7int64_t"></span><span id="ArrowArrayViewGetBytesUnsafe__ArrowArrayViewP.int64_t"></span><span class="target" id="nanoarrow_8h_1a6cb0bd30d8a95ff5dacf0232d401e512"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span c [...]
-<dd><p>Get an element in an ArrowArrayView as an ArrowBufferView. </p>
-<p>This function does not check for null values. </p>
+<dt class="sig sig-object cpp" id="_CPPv422ArrowBufferAppendFloatP11ArrowBufferf">
+<span id="_CPPv322ArrowBufferAppendFloatP11ArrowBufferf"></span><span id="_CPPv222ArrowBufferAppendFloatP11ArrowBufferf"></span><span id="ArrowBufferAppendFloat__ArrowBufferP.float"></span><span class="target" id="group__nanoarrow-buffer_1gafe5febfaba36b789579194612819af0f"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv414ArrowErro [...]
+<dd><p>Write a float to a buffer. </p>
 </dd></dl>
 
 </div>
 <dl class="cpp struct">
-<dt class="sig sig-object cpp" id="_CPPv410ArrowError">
-<span id="_CPPv310ArrowError"></span><span id="_CPPv210ArrowError"></span><span id="ArrowError"></span><span class="target" id="struct_arrow_error"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowError</span></span></span><a class="headerlink" href="#_CPPv410ArrowError" title="Permalink to this definition">#</a><br /></dt>
+<dt class="sig sig-object cpp" id="_CPPv420ArrowBufferAllocator">
+<span id="_CPPv320ArrowBufferAllocator"></span><span id="_CPPv220ArrowBufferAllocator"></span><span id="ArrowBufferAllocator"></span><span class="target" id="struct_arrow_buffer_allocator"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowBufferAllocator</span></span></span><a class="headerlink" href="#_CPPv420ArrowBufferAllocator" title="Permalink to this definition">#</a><br /></dt>
 <dd><div class="docutils container">
-<em>#include &lt;nanoarrow.h&gt;</em></div>
-<p>Error type containing a UTF-8 encoded message. </p>
+<em>#include &lt;nanoarrow_types.h&gt;</em></div>
+<p>Array buffer allocation and deallocation. </p>
+<p>Container for allocate, reallocate, and free methods that can be used to customize allocation and deallocation of buffers when constructing an ArrowArray. </p>
 <div class="breathe-sectiondef docutils container">
 <p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
 <dl class="cpp var">
-<dt class="sig sig-object cpp" id="_CPPv4N10ArrowError7messageE">
-<span id="_CPPv3N10ArrowError7messageE"></span><span id="_CPPv2N10ArrowError7messageE"></span><span id="ArrowError::message__cA"></span><span class="target" id="struct_arrow_error_1a2d28a3dfc0ad6376e30794b3adacd879"></span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">message</span></span></span><span class="p"><span class="pre">[</span></span><span class="m"><span class="pre">1024</span></sp [...]
-<dd></dd></dl>
+<dt class="sig sig-object cpp" id="_CPPv4N20ArrowBufferAllocator10reallocateE">
+<span id="_CPPv3N20ArrowBufferAllocator10reallocateE"></span><span id="_CPPv2N20ArrowBufferAllocator10reallocateE"></span><span class="target" id="struct_arrow_buffer_allocator_1ae4f5aae301b26304d7c9400bd65a2953"></span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n [...]
+<dd><p>Reallocate a buffer or return NULL if it cannot be reallocated. </p>
+</dd></dl>
 
-</div>
+<dl class="cpp var">
+<dt class="sig sig-object cpp" id="_CPPv4N20ArrowBufferAllocator4freeE">
+<span id="_CPPv3N20ArrowBufferAllocator4freeE"></span><span id="_CPPv2N20ArrowBufferAllocator4freeE"></span><span class="target" id="struct_arrow_buffer_allocator_1ac59d10d7f575721f94e5b76974a1af79"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">(</span></span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">free</span></span></span><span class="p"><spa [...]
+<dd><p>Deallocate a buffer allocated by this allocator. </p>
 </dd></dl>
 
-<dl class="cpp struct">
+<dl class="cpp var">
+<dt class="sig sig-object cpp" id="_CPPv4N20ArrowBufferAllocator12private_dataE">
+<span id="_CPPv3N20ArrowBufferAllocator12private_dataE"></span><span id="_CPPv2N20ArrowBufferAllocator12private_dataE"></span><span id="ArrowBufferAllocator::private_data__voidP"></span><span class="target" id="struct_arrow_buffer_allocator_1a49f0b026a66c9481b5f564048a1e736a"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">private_data</sp [...]
+<dd><p>Opaque data specific to the allocator. </p>
+</dd></dl>
+
+</div>
+</dd></dl>
+
+<dl class="cpp struct">
+<dt class="sig sig-object cpp" id="_CPPv411ArrowBuffer">
+<span id="_CPPv311ArrowBuffer"></span><span id="_CPPv211ArrowBuffer"></span><span id="ArrowBuffer"></span><span class="target" id="struct_arrow_buffer"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowBuffer</span></span></span><a class="headerlink" href="#_CPPv411ArrowBuffer" title="Permalink to this definition">#</a><br /></dt>
+<dd><div class="docutils container">
+<em>#include &lt;nanoarrow_types.h&gt;</em></div>
+<p>An owning mutable view of a buffer. </p>
+<div class="breathe-sectiondef docutils container">
+<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
+<dl class="cpp var">
+<dt class="sig sig-object cpp" id="_CPPv4N11ArrowBuffer4dataE">
+<span id="_CPPv3N11ArrowBuffer4dataE"></span><span id="_CPPv2N11ArrowBuffer4dataE"></span><span id="ArrowBuffer::data__uint8_tP"></span><span class="target" id="struct_arrow_buffer_1aa5ff388bfabb0675bc5920b7ae05c1ee"></span><span class="n"><span class="pre">uint8_t</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">data</span></span></span><a class="headerlink" href="#_CPPv4N11ArrowBuffer [...]
+<dd><p>A pointer to the start of the buffer. </p>
+<p>If capacity_bytes is 0, this value may be NULL. </p>
+</dd></dl>
+
+<dl class="cpp var">
+<dt class="sig sig-object cpp" id="_CPPv4N11ArrowBuffer10size_bytesE">
+<span id="_CPPv3N11ArrowBuffer10size_bytesE"></span><span id="_CPPv2N11ArrowBuffer10size_bytesE"></span><span id="ArrowBuffer::size_bytes__int64_t"></span><span class="target" id="struct_arrow_buffer_1a52cd20640e2b397c8a0612aec0eedaf5"></span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">size_bytes</span></span></span><a class="headerlink" href="#_CPPv4N11ArrowBuffer10size_bytesE" title="Pe [...]
+<dd><p>The size of the buffer in bytes. </p>
+</dd></dl>
+
+<dl class="cpp var">
+<dt class="sig sig-object cpp" id="_CPPv4N11ArrowBuffer14capacity_bytesE">
+<span id="_CPPv3N11ArrowBuffer14capacity_bytesE"></span><span id="_CPPv2N11ArrowBuffer14capacity_bytesE"></span><span id="ArrowBuffer::capacity_bytes__int64_t"></span><span class="target" id="struct_arrow_buffer_1a237735ef9399f5e26d0d559db792a085"></span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">capacity_bytes</span></span></span><a class="headerlink" href="#_CPPv4N11ArrowBuffer14capaci [...]
+<dd><p>The capacity of the buffer in bytes. </p>
+</dd></dl>
+
+<dl class="cpp var">
+<dt class="sig sig-object cpp" id="_CPPv4N11ArrowBuffer9allocatorE">
+<span id="_CPPv3N11ArrowBuffer9allocatorE"></span><span id="_CPPv2N11ArrowBuffer9allocatorE"></span><span id="ArrowBuffer::allocator__ArrowBufferAllocator"></span><span class="target" id="struct_arrow_buffer_1ab8d8407330b2c9ab33c85b66d1219928"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv420ArrowBufferAllocator" title="ArrowBufferAllocator"><span class="n"><span class="pre">ArrowBufferAllocator</span></span [...]
+<dd><p>The allocator that will be used to reallocate and/or free the buffer. </p>
+</dd></dl>
+
+</div>
+</dd></dl>
+
+</dd></dl>
+
+</section>
+<section id="bitmap-utilities">
+<h2>Bitmap utilities<a class="headerlink" href="#bitmap-utilities" title="Permalink to this heading">#</a></h2>
+<dl>
+<dt class="sig sig-object cpp">
+<span class="target" id="group__nanoarrow-bitmap"></span><em><span class="pre">group</span></em> <span class="sig-name descname"><span class="pre">nanoarrow-bitmap</span></span></dt>
+<dd><div class="breathe-sectiondef docutils container">
+<p class="breathe-sectiondef-title rubric" id="breathe-section-title-functions">Functions</p>
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv411ArrowBitGetPK7uint8_t7int64_t">
+<span id="_CPPv311ArrowBitGetPK7uint8_t7int64_t"></span><span id="_CPPv211ArrowBitGetPK7uint8_t7int64_t"></span><span id="ArrowBitGet__uint8_tCP.int64_t"></span><span class="target" id="group__nanoarrow-bitmap_1ga66bb6ec563f8c90dd55856cbc1522757"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">int8_t</span></span><span class="w"> </span><spa [...]
+<dd><p>Extract a boolean value from a bitmap. </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv411ArrowBitSetP7uint8_t7int64_t">
+<span id="_CPPv311ArrowBitSetP7uint8_t7int64_t"></span><span id="_CPPv211ArrowBitSetP7uint8_t7int64_t"></span><span id="ArrowBitSet__uint8_tP.int64_t"></span><span class="target" id="group__nanoarrow-bitmap_1ga2a9cc30717e11b59813a124975569a6a"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span cl [...]
+<dd><p>Set a boolean value to a bitmap to true. </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv413ArrowBitClearP7uint8_t7int64_t">
+<span id="_CPPv313ArrowBitClearP7uint8_t7int64_t"></span><span id="_CPPv213ArrowBitClearP7uint8_t7int64_t"></span><span id="ArrowBitClear__uint8_tP.int64_t"></span><span class="target" id="group__nanoarrow-bitmap_1gaef7decc8c405ecea91f6050547453d0a"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><s [...]
+<dd><p>Set a boolean value to a bitmap to false. </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv413ArrowBitSetToP7uint8_t7int64_t7uint8_t">
+<span id="_CPPv313ArrowBitSetToP7uint8_t7int64_t7uint8_t"></span><span id="_CPPv213ArrowBitSetToP7uint8_t7int64_t7uint8_t"></span><span id="ArrowBitSetTo__uint8_tP.int64_t.uint8_t"></span><span class="target" id="group__nanoarrow-bitmap_1ga9900b948593432d514a7175d68c620f7"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><s [...]
+<dd><p>Set a boolean value to a bitmap. </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv414ArrowBitsSetToP7uint8_t7int64_t7int64_t7uint8_t">
+<span id="_CPPv314ArrowBitsSetToP7uint8_t7int64_t7int64_t7uint8_t"></span><span id="_CPPv214ArrowBitsSetToP7uint8_t7int64_t7int64_t7uint8_t"></span><span id="ArrowBitsSetTo__uint8_tP.int64_t.int64_t.uint8_t"></span><span class="target" id="group__nanoarrow-bitmap_1gaee1398dd8c816dc7014961206bfd1493"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class [...]
+<dd><p>Set a boolean value to a range in a bitmap. </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv416ArrowBitCountSetPK7uint8_t7int64_t7int64_t">
+<span id="_CPPv316ArrowBitCountSetPK7uint8_t7int64_t7int64_t"></span><span id="_CPPv216ArrowBitCountSetPK7uint8_t7int64_t7int64_t"></span><span id="ArrowBitCountSet__uint8_tCP.int64_t.int64_t"></span><span class="target" id="group__nanoarrow-bitmap_1ga4313046e811ff93fdc993423c4904b97"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="n"><span class="pre">int64_t</ [...]
+<dd><p>Count true values in a bitmap. </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv415ArrowBitmapInitP11ArrowBitmap">
+<span id="_CPPv315ArrowBitmapInitP11ArrowBitmap"></span><span id="_CPPv215ArrowBitmapInitP11ArrowBitmap"></span><span id="ArrowBitmapInit__ArrowBitmapP"></span><span class="target" id="group__nanoarrow-bitmap_1gacd63cc6dd7127602a72a7ba994aaabed"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span  [...]
+<dd><p>Initialize an <a class="reference internal" href="#struct_arrow_bitmap"><span class="std std-ref">ArrowBitmap</span></a>. </p>
+<p>Initialize the builder’s buffer, empty its cache, and reset the size to zero </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv418ArrowBitmapReserveP11ArrowBitmap7int64_t">
+<span id="_CPPv318ArrowBitmapReserveP11ArrowBitmap7int64_t"></span><span id="_CPPv218ArrowBitmapReserveP11ArrowBitmap7int64_t"></span><span id="ArrowBitmapReserve__ArrowBitmapP.int64_t"></span><span class="target" id="group__nanoarrow-bitmap_1ga8a1080cb4f1cb2dce6110f3ddc198fcb"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv414Arrow [...]
+<dd><p>Ensure a bitmap builder has at least a given additional capacity. </p>
+<p>Ensures that the buffer has space to append at least additional_size_bits, overallocating when required. </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv417ArrowBitmapResizeP11ArrowBitmap7int64_tc">
+<span id="_CPPv317ArrowBitmapResizeP11ArrowBitmap7int64_tc"></span><span id="_CPPv217ArrowBitmapResizeP11ArrowBitmap7int64_tc"></span><span id="ArrowBitmapResize__ArrowBitmapP.int64_t.c"></span><span class="target" id="group__nanoarrow-bitmap_1ga34e4af39131d13cfd213f7f62aaf9fac"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv414Arro [...]
+<dd><p>Grow or shrink a bitmap to a given capacity. </p>
+<p>When shrinking the capacity of the bitmap, the bitmap is only reallocated if shrink_to_fit is non-zero. Calling ArrowBitmapResize() does not adjust the buffer’s size member except when shrinking new_capacity_bits to a value less than the current number of bits in the bitmap. </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv417ArrowBitmapAppendP11ArrowBitmap7uint8_t7int64_t">
+<span id="_CPPv317ArrowBitmapAppendP11ArrowBitmap7uint8_t7int64_t"></span><span id="_CPPv217ArrowBitmapAppendP11ArrowBitmap7uint8_t7int64_t"></span><span id="ArrowBitmapAppend__ArrowBitmapP.uint8_t.int64_t"></span><span class="target" id="group__nanoarrow-bitmap_1gab9fa70f0992b02af7eb0843d7d917db7"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><a class="reference internal" [...]
+<dd><p>Reserve space for and append zero or more of the same boolean value to a bitmap. </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv423ArrowBitmapAppendUnsafeP11ArrowBitmap7uint8_t7int64_t">
+<span id="_CPPv323ArrowBitmapAppendUnsafeP11ArrowBitmap7uint8_t7int64_t"></span><span id="_CPPv223ArrowBitmapAppendUnsafeP11ArrowBitmap7uint8_t7int64_t"></span><span id="ArrowBitmapAppendUnsafe__ArrowBitmapP.uint8_t.int64_t"></span><span class="target" id="group__nanoarrow-bitmap_1gacbbb2d68806fca20c4316c922f12978e"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class [...]
+<dd><p>Append zero or more of the same boolean value to a bitmap. </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv427ArrowBitmapAppendInt8UnsafeP11ArrowBitmapPK6int8_t7int64_t">
+<span id="_CPPv327ArrowBitmapAppendInt8UnsafeP11ArrowBitmapPK6int8_t7int64_t"></span><span id="_CPPv227ArrowBitmapAppendInt8UnsafeP11ArrowBitmapPK6int8_t7int64_t"></span><span id="ArrowBitmapAppendInt8Unsafe__ArrowBitmapP.int8_tCP.int64_t"></span><span class="target" id="group__nanoarrow-bitmap_1ga543fa468114816549b3478c27e81c72e"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </s [...]
+<dd><p>Append boolean values encoded as int8_t to a bitmap. </p>
+<p>The values must all be 0 or 1. </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv428ArrowBitmapAppendInt32UnsafeP11ArrowBitmapPK7int32_t7int64_t">
+<span id="_CPPv328ArrowBitmapAppendInt32UnsafeP11ArrowBitmapPK7int32_t7int64_t"></span><span id="_CPPv228ArrowBitmapAppendInt32UnsafeP11ArrowBitmapPK7int32_t7int64_t"></span><span id="ArrowBitmapAppendInt32Unsafe__ArrowBitmapP.int32_tCP.int64_t"></span><span class="target" id="group__nanoarrow-bitmap_1gae1fe367ccb49ec588e829fc654ea9220"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w [...]
+<dd><p>Append boolean values encoded as int32_t to a bitmap. </p>
+<p>The values must all be 0 or 1. </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv416ArrowBitmapResetP11ArrowBitmap">
+<span id="_CPPv316ArrowBitmapResetP11ArrowBitmap"></span><span id="_CPPv216ArrowBitmapResetP11ArrowBitmap"></span><span id="ArrowBitmapReset__ArrowBitmapP"></span><span class="target" id="group__nanoarrow-bitmap_1ga1c77e0ca97b6d1ddfe79a867a9ef9c9e"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><sp [...]
+<dd><p>Reset a bitmap builder. </p>
+<p>Releases any memory held by buffer, empties the cache, and resets the size to zero </p>
+</dd></dl>
+
+</div>
+<dl class="cpp struct">
+<dt class="sig sig-object cpp" id="_CPPv411ArrowBitmap">
+<span id="_CPPv311ArrowBitmap"></span><span id="_CPPv211ArrowBitmap"></span><span id="ArrowBitmap"></span><span class="target" id="struct_arrow_bitmap"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowBitmap</span></span></span><a class="headerlink" href="#_CPPv411ArrowBitmap" title="Permalink to this definition">#</a><br /></dt>
+<dd><div class="docutils container">
+<em>#include &lt;nanoarrow_types.h&gt;</em></div>
+<p>An owning mutable view of a bitmap. </p>
+<div class="breathe-sectiondef docutils container">
+<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
+<dl class="cpp var">
+<dt class="sig sig-object cpp" id="_CPPv4N11ArrowBitmap6bufferE">
+<span id="_CPPv3N11ArrowBitmap6bufferE"></span><span id="_CPPv2N11ArrowBitmap6bufferE"></span><span id="ArrowBitmap::buffer__ArrowBuffer"></span><span class="target" id="struct_arrow_bitmap_1ab3864046459e5377dad6e05ff0b46e43"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv411ArrowBuffer" title="ArrowBuffer"><span class="n"><span class="pre">ArrowBuffer</span></span></a><span class="w"> </span><span class="sig [...]
+<dd><p>An <a class="reference internal" href="#struct_arrow_buffer"><span class="std std-ref">ArrowBuffer</span></a> to hold the allocated memory. </p>
+</dd></dl>
+
+<dl class="cpp var">
+<dt class="sig sig-object cpp" id="_CPPv4N11ArrowBitmap9size_bitsE">
+<span id="_CPPv3N11ArrowBitmap9size_bitsE"></span><span id="_CPPv2N11ArrowBitmap9size_bitsE"></span><span id="ArrowBitmap::size_bits__int64_t"></span><span class="target" id="struct_arrow_bitmap_1ac5815138ae9ee52c801fa803541b3f45"></span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">size_bits</span></span></span><a class="headerlink" href="#_CPPv4N11ArrowBitmap9size_bitsE" title="Permalink  [...]
+<dd><p>The number of bits that have been appended to the bitmap. </p>
+</dd></dl>
+
+</div>
+</dd></dl>
+
+</dd></dl>
+
+</section>
+<section id="create-read-and-modify-schema-metadata">
+<h2>Create, read, and modify schema metadata<a class="headerlink" href="#create-read-and-modify-schema-metadata" title="Permalink to this heading">#</a></h2>
+<dl>
+<dt class="sig sig-object cpp">
+<span class="target" id="group__nanoarrow-metadata"></span><em><span class="pre">group</span></em> <span class="sig-name descname"><span class="pre">nanoarrow-metadata</span></span></dt>
+<dd><div class="breathe-sectiondef docutils container">
+<p class="breathe-sectiondef-title rubric" id="breathe-section-title-functions">Functions</p>
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv423ArrowMetadataReaderInitP19ArrowMetadataReaderPKc">
+<span id="_CPPv323ArrowMetadataReaderInitP19ArrowMetadataReaderPKc"></span><span id="_CPPv223ArrowMetadataReaderInitP19ArrowMetadataReaderPKc"></span><span id="ArrowMetadataReaderInit__ArrowMetadataReaderP.cCP"></span><span class="target" id="group__nanoarrow-metadata_1ga89254adeb3594ff8ca0d476ab47c0e8c"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><span class="pre">ArrowErrorCode</span></span></a><span class="w"> </span><span [...]
+<dd><p>Initialize an <a class="reference internal" href="#struct_arrow_metadata_reader"><span class="std std-ref">ArrowMetadataReader</span></a>. </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv423ArrowMetadataReaderReadP19ArrowMetadataReaderP15ArrowStringViewP15ArrowStringView">
+<span id="_CPPv323ArrowMetadataReaderReadP19ArrowMetadataReaderP15ArrowStringViewP15ArrowStringView"></span><span id="_CPPv223ArrowMetadataReaderReadP19ArrowMetadataReaderP15ArrowStringViewP15ArrowStringView"></span><span id="ArrowMetadataReaderRead__ArrowMetadataReaderP.ArrowStringViewP.ArrowStringViewP"></span><span class="target" id="group__nanoarrow-metadata_1ga7a6eb4c0792e56bcfb207859422398f5"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode" [...]
+<dd><p>Read the next key/value pair from an <a class="reference internal" href="#struct_arrow_metadata_reader"><span class="std std-ref">ArrowMetadataReader</span></a>. </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv419ArrowMetadataSizeOfPKc">
+<span id="_CPPv319ArrowMetadataSizeOfPKc"></span><span id="_CPPv219ArrowMetadataSizeOfPKc"></span><span id="ArrowMetadataSizeOf__cCP"></span><span class="target" id="group__nanoarrow-metadata_1gaabd80297b7447691b8e06356bd9255c7"></span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowMetadataSizeOf</span></span></span><span class="sig-paren">(</span><span class="k"><span class="pre">const [...]
+<dd><p>The number of bytes in in a key/value metadata string. </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv419ArrowMetadataHasKeyPKc15ArrowStringView">
+<span id="_CPPv319ArrowMetadataHasKeyPKc15ArrowStringView"></span><span id="_CPPv219ArrowMetadataHasKeyPKc15ArrowStringView"></span><span id="ArrowMetadataHasKey__cCP.ArrowStringView"></span><span class="target" id="group__nanoarrow-metadata_1ga56fdfaaf8c3d923696a605f25f1f66ae"></span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowMetadataHasKey</span></span></span><span class="sig-paren" [...]
+<dd><p>Check for a key in schema metadata. </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv421ArrowMetadataGetValuePKc15ArrowStringViewP15ArrowStringView">
+<span id="_CPPv321ArrowMetadataGetValuePKc15ArrowStringViewP15ArrowStringView"></span><span id="_CPPv221ArrowMetadataGetValuePKc15ArrowStringViewP15ArrowStringView"></span><span id="ArrowMetadataGetValue__cCP.ArrowStringView.ArrowStringViewP"></span><span class="target" id="group__nanoarrow-metadata_1ga154a131dd727d341a3228c853da70b3e"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><span class="pre">ArrowErrorCode</span></span>< [...]
+<dd><p>Extract a value from schema metadata. </p>
+<p>If key does not exist in metadata, value_out is unmodified </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv424ArrowMetadataBuilderInitP11ArrowBufferPKc">
+<span id="_CPPv324ArrowMetadataBuilderInitP11ArrowBufferPKc"></span><span id="_CPPv224ArrowMetadataBuilderInitP11ArrowBufferPKc"></span><span id="ArrowMetadataBuilderInit__ArrowBufferP.cCP"></span><span class="target" id="group__nanoarrow-metadata_1ga1fd3676ba441f4f9430315a73869e808"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><span class="pre">ArrowErrorCode</span></span></a><span class="w"> </span><span class="sig-name desc [...]
+<dd><p>Initialize a builder for schema metadata from key/value pairs. </p>
+<p>metadata can be an existing metadata string or NULL to initialize an empty metadata string. </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv426ArrowMetadataBuilderAppendP11ArrowBuffer15ArrowStringView15ArrowStringView">
+<span id="_CPPv326ArrowMetadataBuilderAppendP11ArrowBuffer15ArrowStringView15ArrowStringView"></span><span id="_CPPv226ArrowMetadataBuilderAppendP11ArrowBuffer15ArrowStringView15ArrowStringView"></span><span id="ArrowMetadataBuilderAppend__ArrowBufferP.ArrowStringView.ArrowStringView"></span><span class="target" id="group__nanoarrow-metadata_1ga3a14a413a8570d3f96d15255c3f1fc7a"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><spa [...]
+<dd><p>Append a key/value pair to a buffer containing serialized metadata. </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv423ArrowMetadataBuilderSetP11ArrowBuffer15ArrowStringView15ArrowStringView">
+<span id="_CPPv323ArrowMetadataBuilderSetP11ArrowBuffer15ArrowStringView15ArrowStringView"></span><span id="_CPPv223ArrowMetadataBuilderSetP11ArrowBuffer15ArrowStringView15ArrowStringView"></span><span id="ArrowMetadataBuilderSet__ArrowBufferP.ArrowStringView.ArrowStringView"></span><span class="target" id="group__nanoarrow-metadata_1ga4d8fca20ce7049d66a6445df1a2d83e0"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><span class=" [...]
+<dd><p>Set a key/value pair to a buffer containing serialized metadata. </p>
+<p>Ensures that the only entry for key in the metadata is set to value. This function maintains the existing position of (the first instance of) key if present in the data. </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv426ArrowMetadataBuilderRemoveP11ArrowBuffer15ArrowStringView">
+<span id="_CPPv326ArrowMetadataBuilderRemoveP11ArrowBuffer15ArrowStringView"></span><span id="_CPPv226ArrowMetadataBuilderRemoveP11ArrowBuffer15ArrowStringView"></span><span id="ArrowMetadataBuilderRemove__ArrowBufferP.ArrowStringView"></span><span class="target" id="group__nanoarrow-metadata_1ga093520d83b6d21c836e178b900ff96b1"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><span class="pre">ArrowErrorCode</span></span></a><spa [...]
+<dd><p>Remove a key from a buffer containing serialized metadata. </p>
+</dd></dl>
+
+</div>
+<dl class="cpp struct">
 <dt class="sig sig-object cpp" id="_CPPv419ArrowMetadataReader">
 <span id="_CPPv319ArrowMetadataReader"></span><span id="_CPPv219ArrowMetadataReader"></span><span id="ArrowMetadataReader"></span><span class="target" id="struct_arrow_metadata_reader"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowMetadataReader</span></span></span><a class="headerlink" href="#_CPPv419ArrowMetadataReader" title="Permalink to this definition">#</a><br /></dt>
 <dd><div class="docutils container">
 <em>#include &lt;nanoarrow.h&gt;</em></div>
 <p>Reader for key/value pairs in schema metadata. </p>
+<p>The <a class="reference internal" href="#struct_arrow_metadata_reader"><span class="std std-ref">ArrowMetadataReader</span></a> does not own any data and is only valid for the lifetime of the underlying metadata pointer. </p>
 <div class="breathe-sectiondef docutils container">
 <p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
 <dl class="cpp var">
 <dt class="sig sig-object cpp" id="_CPPv4N19ArrowMetadataReader8metadataE">
 <span id="_CPPv3N19ArrowMetadataReader8metadataE"></span><span id="_CPPv2N19ArrowMetadataReader8metadataE"></span><span id="ArrowMetadataReader::metadata__cCP"></span><span class="target" id="struct_arrow_metadata_reader_1ae5ab9868587ac1b569db827307cb9284"></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name des [...]
-<dd></dd></dl>
+<dd><p>A metadata string from a schema-&gt;metadata field. </p>
+</dd></dl>
 
 <dl class="cpp var">
 <dt class="sig sig-object cpp" id="_CPPv4N19ArrowMetadataReader6offsetE">
 <span id="_CPPv3N19ArrowMetadataReader6offsetE"></span><span id="_CPPv2N19ArrowMetadataReader6offsetE"></span><span id="ArrowMetadataReader::offset__int64_t"></span><span class="target" id="struct_arrow_metadata_reader_1a80cec1f7461778444d67b9a44bb5b5c0"></span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">offset</span></span></span><a class="headerlink" href="#_CPPv4N19ArrowMetadataReader6 [...]
-<dd></dd></dl>
+<dd><p>The current offset into the metadata string. </p>
+</dd></dl>
 
 <dl class="cpp var">
 <dt class="sig sig-object cpp" id="_CPPv4N19ArrowMetadataReader14remaining_keysE">
 <span id="_CPPv3N19ArrowMetadataReader14remaining_keysE"></span><span id="_CPPv2N19ArrowMetadataReader14remaining_keysE"></span><span id="ArrowMetadataReader::remaining_keys__int32_t"></span><span class="target" id="struct_arrow_metadata_reader_1a9f5901986ea3343e0648b3abf155bfc3"></span><span class="n"><span class="pre">int32_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">remaining_keys</span></span></span><a class="headerlink" hr [...]
-<dd></dd></dl>
+<dd><p>The number of remaining keys. </p>
+</dd></dl>
+
+</div>
+</dd></dl>
+
+</dd></dl>
+
+</section>
+<section id="memory-management">
+<h2>Memory management<a class="headerlink" href="#memory-management" title="Permalink to this heading">#</a></h2>
+<dl>
+<dt class="sig sig-object cpp">
+<span class="target" id="group__nanoarrow-malloc"></span><em><span class="pre">group</span></em> <span class="sig-name descname"><span class="pre">nanoarrow-malloc</span></span></dt>
+<dd><p>Non-buffer members of a struct ArrowSchema and struct ArrowArray must be allocated using <a class="reference internal" href="#group__nanoarrow-malloc_1gab05bc897baadee2d140b5bea9a846f7b"><span class="std std-ref">ArrowMalloc()</span></a> or <a class="reference internal" href="#group__nanoarrow-malloc_1ga3ae6c5f200450ea143c24613f4d115ac"><span class="std std-ref">ArrowRealloc()</span></a> and freed using <a class="reference internal" href="#group__nanoarrow-malloc_1gaa9552e61d8cce6 [...]
+<div class="breathe-sectiondef docutils container">
+<p class="breathe-sectiondef-title rubric" id="breathe-section-title-functions">Functions</p>
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv411ArrowMalloc7int64_t">
+<span id="_CPPv311ArrowMalloc7int64_t"></span><span id="_CPPv211ArrowMalloc7int64_t"></span><span id="ArrowMalloc__int64_t"></span><span class="target" id="group__nanoarrow-malloc_1gab05bc897baadee2d140b5bea9a846f7b"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">ArrowMalloc</span></span></span><span class="sig-paren">(</span><span class= [...]
+<dd><p>Allocate like malloc() </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv412ArrowReallocPv7int64_t">
+<span id="_CPPv312ArrowReallocPv7int64_t"></span><span id="_CPPv212ArrowReallocPv7int64_t"></span><span id="ArrowRealloc__voidP.int64_t"></span><span class="target" id="group__nanoarrow-malloc_1ga3ae6c5f200450ea143c24613f4d115ac"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class="pre">ArrowRealloc</span></span></span><span class="sig-paren">(</spa [...]
+<dd><p>Reallocate like realloc() </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv49ArrowFreePv">
+<span id="_CPPv39ArrowFreePv"></span><span id="_CPPv29ArrowFreePv"></span><span id="ArrowFree__voidP"></span><span class="target" id="group__nanoarrow-malloc_1gaa9552e61d8cce6520ef578d0c8c73860"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowFree</span></span></span><span class="sig-paren">(</span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span cl [...]
+<dd><p>Free a pointer allocated using <a class="reference internal" href="#group__nanoarrow-malloc_1gab05bc897baadee2d140b5bea9a846f7b"><span class="std std-ref">ArrowMalloc()</span></a> or <a class="reference internal" href="#group__nanoarrow-malloc_1ga3ae6c5f200450ea143c24613f4d115ac"><span class="std std-ref">ArrowRealloc()</span></a>. </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv427ArrowBufferAllocatorDefaultv">
+<span id="_CPPv327ArrowBufferAllocatorDefaultv"></span><span id="_CPPv227ArrowBufferAllocatorDefaultv"></span><span id="ArrowBufferAllocatorDefault"></span><span class="target" id="group__nanoarrow-malloc_1ga6a51426f49cc209e7488c93d39ca5b45"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv420ArrowBufferAllocator" title="ArrowBufferAllocator"><span class="n"><span class="pre">ArrowBufferAllocator</span></span>< [...]
+<dd><p>Return the default allocator. </p>
+<p>The default allocator uses <a class="reference internal" href="#group__nanoarrow-malloc_1gab05bc897baadee2d140b5bea9a846f7b"><span class="std std-ref">ArrowMalloc()</span></a>, <a class="reference internal" href="#group__nanoarrow-malloc_1ga3ae6c5f200450ea143c24613f4d115ac"><span class="std std-ref">ArrowRealloc()</span></a>, and <a class="reference internal" href="#group__nanoarrow-malloc_1gaa9552e61d8cce6520ef578d0c8c73860"><span class="std std-ref">ArrowFree()</span></a>. </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv422ArrowBufferDeallocatorPFvP20ArrowBufferAllocatorP7uint8_t7int64_tEPv">
+<span id="_CPPv322ArrowBufferDeallocatorPFvP20ArrowBufferAllocatorP7uint8_t7int64_tEPv"></span><span id="_CPPv222ArrowBufferDeallocatorPFvP20ArrowBufferAllocatorP7uint8_t7int64_tEPv"></span><span class="target" id="group__nanoarrow-malloc_1ga47bb3e6551ae911f2a7a084724617099"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv420ArrowBufferAllocator" title="ArrowBufferAllocator"><span class="n"><span class="pre">A [...]
+<dd><p>Create a custom deallocator. </p>
+<p>Creates a buffer allocator with only a free method that can be used to attach a custom deallocator to an <a class="reference internal" href="#struct_arrow_buffer"><span class="std std-ref">ArrowBuffer</span></a>. This may be used to avoid copying an existing buffer that was not allocated using the infrastructure provided here (e.g., by an R or Python object). </p>
+</dd></dl>
+
+</div>
+</dd></dl>
+
+</section>
+<section id="error-handling">
+<h2>Error handling<a class="headerlink" href="#error-handling" title="Permalink to this heading">#</a></h2>
+<dl>
+<dt class="sig sig-object cpp">
+<span class="target" id="group__nanoarrow-errors"></span><em><span class="pre">group</span></em> <span class="sig-name descname"><span class="pre">nanoarrow-errors</span></span></dt>
+<dd><p>Functions generally return an errno-compatible error code; functions that need to communicate more verbose error information accept a pointer to an <a class="reference internal" href="#struct_arrow_error"><span class="std std-ref">ArrowError</span></a>. This can be stack or statically allocated. The content of the message is undefined unless an error code has been returned. </p>
+<div class="breathe-sectiondef docutils container">
+<p class="breathe-sectiondef-title rubric" id="breathe-section-title-defines">Defines</p>
+<dl class="cpp macro">
+<dt class="sig sig-object cpp" id="c.NANOARROW_OK">
+<span class="target" id="group__nanoarrow-errors_1ga007cefbf896afbd6d30d4226d773a7d5"></span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_OK</span></span></span><a class="headerlink" href="#c.NANOARROW_OK" title="Permalink to this definition">#</a><br /></dt>
+<dd><p>Return code for success. </p>
+</dd></dl>
+
+<dl class="cpp macro">
+<dt class="sig sig-object cpp" id="c.NANOARROW_RETURN_NOT_OK">
+<span class="target" id="group__nanoarrow-errors_1gadded0e0e389c1711f6ee55885f0960fd"></span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_RETURN_NOT_OK</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">EXPR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#c.NANOARROW_RETURN_NOT_OK" title="Permalink to this definition">#</a><br /></dt>
+<dd><p>Check the result of an expression and return it if not NANOARROW_OK. </p>
+</dd></dl>
+
+</div>
+<div class="breathe-sectiondef docutils container">
+<p class="breathe-sectiondef-title rubric" id="breathe-section-title-typedefs">Typedefs</p>
+<dl class="cpp type">
+<dt class="sig sig-object cpp" id="_CPPv414ArrowErrorCode">
+<span id="_CPPv314ArrowErrorCode"></span><span id="_CPPv214ArrowErrorCode"></span><span id="ArrowErrorCode"></span><span class="target" id="group__nanoarrow-errors_1ga7a5fb5dd2afa900c7b5f1d78b5da92c8"></span><span class="k"><span class="pre">typedef</span></span><span class="w"> </span><span class="kt"><span class="pre">int</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowErrorCode</span></span></span><a class="headerlink" href=" [...]
+<dd><p>Represents an errno-compatible error code. </p>
+</dd></dl>
 
 </div>
+<div class="breathe-sectiondef docutils container">
+<p class="breathe-sectiondef-title rubric" id="breathe-section-title-functions">Functions</p>
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv413ArrowErrorSetP10ArrowErrorPKcz">
+<span id="_CPPv313ArrowErrorSetP10ArrowErrorPKcz"></span><span id="_CPPv213ArrowErrorSetP10ArrowErrorPKcz"></span><span id="ArrowErrorSet__ArrowErrorP.cCP.z"></span><span class="target" id="group__nanoarrow-errors_1ga505469650d679b2fa680f31bdbc457cd"></span><a class="reference internal" href="#_CPPv414ArrowErrorCode" title="ArrowErrorCode"><span class="n"><span class="pre">ArrowErrorCode</span></span></a><span class="w"> </span><span class="sig-name descname"><span class="n"><span class= [...]
+<dd><p>Set the contents of an error using printf syntax. </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv417ArrowErrorMessageP10ArrowError">
+<span id="_CPPv317ArrowErrorMessageP10ArrowError"></span><span id="_CPPv217ArrowErrorMessageP10ArrowError"></span><span id="ArrowErrorMessage__ArrowErrorP"></span><span class="target" id="group__nanoarrow-errors_1gaefec4255da8f1a584c6fc8ef357d7b13"></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname">< [...]
+<dd><p>Get the contents of an error. </p>
 </dd></dl>
 
+</div>
 <dl class="cpp struct">
-<dt class="sig sig-object cpp" id="_CPPv415ArrowSchemaView">
-<span id="_CPPv315ArrowSchemaView"></span><span id="_CPPv215ArrowSchemaView"></span><span id="ArrowSchemaView"></span><span class="target" id="struct_arrow_schema_view"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowSchemaView</span></span></span><a class="headerlink" href="#_CPPv415ArrowSchemaView" title="Permalink to this definition">#</a><br /></dt>
+<dt class="sig sig-object cpp" id="_CPPv410ArrowError">
+<span id="_CPPv310ArrowError"></span><span id="_CPPv210ArrowError"></span><span id="ArrowError"></span><span class="target" id="struct_arrow_error"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowError</span></span></span><a class="headerlink" href="#_CPPv410ArrowError" title="Permalink to this definition">#</a><br /></dt>
 <dd><div class="docutils container">
 <em>#include &lt;nanoarrow.h&gt;</em></div>
-<p>A non-owning view of a parsed ArrowSchema. </p>
-<p>Contains more readily extractable values than a raw ArrowSchema. Clients can stack or statically allocate this structure but are encouraged to use the provided getters to ensure forward compatiblity. </p>
+<p>Error type containing a UTF-8 encoded message. </p>
 <div class="breathe-sectiondef docutils container">
 <p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
 <dl class="cpp var">
-<dt class="sig sig-object cpp" id="_CPPv4N15ArrowSchemaView6schemaE">
-<span id="_CPPv3N15ArrowSchemaView6schemaE"></span><span id="_CPPv2N15ArrowSchemaView6schemaE"></span><span id="ArrowSchemaView::schema__ArrowSchemaP"></span><span class="target" id="struct_arrow_schema_view_1a57cab09d0c332eaf55d4886d600ecd6a"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowSchema</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname" [...]
-<dd><p>A pointer to the schema represented by this view. </p>
+<dt class="sig sig-object cpp" id="_CPPv4N10ArrowError7messageE">
+<span id="_CPPv3N10ArrowError7messageE"></span><span id="_CPPv2N10ArrowError7messageE"></span><span id="ArrowError::message__cA"></span><span class="target" id="struct_arrow_error_1a2d28a3dfc0ad6376e30794b3adacd879"></span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">message</span></span></span><span class="p"><span class="pre">[</span></span><span class="m"><span class="pre">1024</span></sp [...]
+<dd><p>A character buffer with space for an error message. </p>
 </dd></dl>
 
-<dl class="cpp var">
-<dt class="sig sig-object cpp" id="_CPPv4N15ArrowSchemaView9data_typeE">
-<span id="_CPPv3N15ArrowSchemaView9data_typeE"></span><span id="_CPPv2N15ArrowSchemaView9data_typeE"></span><span id="ArrowSchemaView::data_type__ArrowType"></span><span class="target" id="struct_arrow_schema_view_1aa0c2f0c6a651233903fb071fe8d8f791"></span><span class="k"><span class="pre">enum</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowType</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">data_type</s [...]
-<dd><p>The data type represented by the schema. </p>
-<p>This value may be NANOARROW_TYPE_DICTIONARY if the schema has a non-null dictionary member; datetime types are valid values. This value will never be NANOARROW_TYPE_EXTENSION (see extension_name and/or extension_metadata to check for an extension type). </p>
+</div>
 </dd></dl>
 
-<dl class="cpp var">
-<dt class="sig sig-object cpp" id="_CPPv4N15ArrowSchemaView17storage_data_typeE">
-<span id="_CPPv3N15ArrowSchemaView17storage_data_typeE"></span><span id="_CPPv2N15ArrowSchemaView17storage_data_typeE"></span><span id="ArrowSchemaView::storage_data_type__ArrowType"></span><span class="target" id="struct_arrow_schema_view_1a0fc551e40ea8c4c5bef551175a17ce13"></span><span class="k"><span class="pre">enum</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowType</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><spa [...]
-<dd><p>The storage data type represented by the schema. </p>
-<p>This value will never be NANOARROW_TYPE_DICTIONARY, NANOARROW_TYPE_EXTENSION or any datetime type. This value represents only the type required to interpret the buffers in the array. </p>
 </dd></dl>
 
-<dl class="cpp var">
-<dt class="sig sig-object cpp" id="_CPPv4N15ArrowSchemaView6layoutE">
-<span id="_CPPv3N15ArrowSchemaView6layoutE"></span><span id="_CPPv2N15ArrowSchemaView6layoutE"></span><span id="ArrowSchemaView::layout__ArrowLayout"></span><span class="target" id="struct_arrow_schema_view_1ada30de73dfb00c14bf9d9d14ad38d327"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowLayout</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">layout</span></ [...]
-<dd><p>The storage layout represented by the schema. </p>
+</section>
+<section id="utility-data-structures">
+<h2>Utility data structures<a class="headerlink" href="#utility-data-structures" title="Permalink to this heading">#</a></h2>
+<dl>
+<dt class="sig sig-object cpp">
+<span class="target" id="group__nanoarrow-utils"></span><em><span class="pre">group</span></em> <span class="sig-name descname"><span class="pre">nanoarrow-utils</span></span></dt>
+<dd><div class="breathe-sectiondef docutils container">
+<p class="breathe-sectiondef-title rubric" id="breathe-section-title-enums">Enums</p>
+<dl class="cpp enum">
+<dt class="sig sig-object cpp" id="_CPPv49ArrowType">
+<span id="_CPPv39ArrowType"></span><span id="_CPPv29ArrowType"></span><span class="target" id="group__nanoarrow-utils_1gae040d7d64b46dd1dc796225aa77c2112"></span><span class="k"><span class="pre">enum</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowType</span></span></span><a class="headerlink" href="#_CPPv49ArrowType" title="Permalink to this definition">#</a><br /></dt>
+<dd><p>Arrow type enumerator. </p>
+<p>These names are intended to map to the corresponding arrow::Type::type enumerator; however, the numeric values are specifically not equal (i.e., do not rely on numeric comparison). </p>
+<p><em>Values:</em></p>
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType28NANOARROW_TYPE_UNINITIALIZEDE">
+<span id="_CPPv3N9ArrowType28NANOARROW_TYPE_UNINITIALIZEDE"></span><span id="_CPPv2N9ArrowType28NANOARROW_TYPE_UNINITIALIZEDE"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112ab746c1cb07ff4ccc99d414e38b9263aa"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_UNINITIALIZED</span></span></span><a class="headerlink" href="#_CPPv4 [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType17NANOARROW_TYPE_NAE">
+<span id="_CPPv3N9ArrowType17NANOARROW_TYPE_NAE"></span><span id="_CPPv2N9ArrowType17NANOARROW_TYPE_NAE"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112a73727f2b52aefe322c7d467946058815"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_NA</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowType17NANOARROW_TYPE_NAE"  [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType19NANOARROW_TYPE_BOOLE">
+<span id="_CPPv3N9ArrowType19NANOARROW_TYPE_BOOLE"></span><span id="_CPPv2N9ArrowType19NANOARROW_TYPE_BOOLE"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112a0b3a1ba0ae1d30a753746118d7b62906"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_BOOL</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowType19NANOARROW_TYPE [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType20NANOARROW_TYPE_UINT8E">
+<span id="_CPPv3N9ArrowType20NANOARROW_TYPE_UINT8E"></span><span id="_CPPv2N9ArrowType20NANOARROW_TYPE_UINT8E"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112a10896d55f67c64fc7817825442aa0ade"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_UINT8</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowType20NANOARROW_T [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType19NANOARROW_TYPE_INT8E">
+<span id="_CPPv3N9ArrowType19NANOARROW_TYPE_INT8E"></span><span id="_CPPv2N9ArrowType19NANOARROW_TYPE_INT8E"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112acef626769a554bb68336c1d8c3c65244"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_INT8</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowType19NANOARROW_TYPE [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType21NANOARROW_TYPE_UINT16E">
+<span id="_CPPv3N9ArrowType21NANOARROW_TYPE_UINT16E"></span><span id="_CPPv2N9ArrowType21NANOARROW_TYPE_UINT16E"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112ad6e837af09a0c1a0f7fcf22b3467c592"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_UINT16</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowType21NANOARRO [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType20NANOARROW_TYPE_INT16E">
+<span id="_CPPv3N9ArrowType20NANOARROW_TYPE_INT16E"></span><span id="_CPPv2N9ArrowType20NANOARROW_TYPE_INT16E"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112ab2801469dad4d8a64ede3ece8bce3d6b"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_INT16</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowType20NANOARROW_T [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType21NANOARROW_TYPE_UINT32E">
+<span id="_CPPv3N9ArrowType21NANOARROW_TYPE_UINT32E"></span><span id="_CPPv2N9ArrowType21NANOARROW_TYPE_UINT32E"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112a5ce61e933df61ab70fd3c913566c86ca"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_UINT32</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowType21NANOARRO [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType20NANOARROW_TYPE_INT32E">
+<span id="_CPPv3N9ArrowType20NANOARROW_TYPE_INT32E"></span><span id="_CPPv2N9ArrowType20NANOARROW_TYPE_INT32E"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112a77eeab0486c65aec2f6078a6b790528f"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_INT32</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowType20NANOARROW_T [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType21NANOARROW_TYPE_UINT64E">
+<span id="_CPPv3N9ArrowType21NANOARROW_TYPE_UINT64E"></span><span id="_CPPv2N9ArrowType21NANOARROW_TYPE_UINT64E"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112a71e02a3b752e3d7957f9446a39ffb94c"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_UINT64</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowType21NANOARRO [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType20NANOARROW_TYPE_INT64E">
+<span id="_CPPv3N9ArrowType20NANOARROW_TYPE_INT64E"></span><span id="_CPPv2N9ArrowType20NANOARROW_TYPE_INT64E"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112a61bdb807f79a95047f8b974ef1d6c935"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_INT64</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowType20NANOARROW_T [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType25NANOARROW_TYPE_HALF_FLOATE">
+<span id="_CPPv3N9ArrowType25NANOARROW_TYPE_HALF_FLOATE"></span><span id="_CPPv2N9ArrowType25NANOARROW_TYPE_HALF_FLOATE"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112a7db66450ba8f3888189a9efa8e36938e"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_HALF_FLOAT</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowTy [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType20NANOARROW_TYPE_FLOATE">
+<span id="_CPPv3N9ArrowType20NANOARROW_TYPE_FLOATE"></span><span id="_CPPv2N9ArrowType20NANOARROW_TYPE_FLOATE"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112a00eda8c13e2e56455f029fd0c725cb41"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_FLOAT</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowType20NANOARROW_T [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType21NANOARROW_TYPE_DOUBLEE">
+<span id="_CPPv3N9ArrowType21NANOARROW_TYPE_DOUBLEE"></span><span id="_CPPv2N9ArrowType21NANOARROW_TYPE_DOUBLEE"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112a083479e678847d7003b3256d96144b29"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_DOUBLE</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowType21NANOARRO [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType21NANOARROW_TYPE_STRINGE">
+<span id="_CPPv3N9ArrowType21NANOARROW_TYPE_STRINGE"></span><span id="_CPPv2N9ArrowType21NANOARROW_TYPE_STRINGE"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112a6e120d06775ba24484bf64cd11992a47"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_STRING</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowType21NANOARRO [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType21NANOARROW_TYPE_BINARYE">
+<span id="_CPPv3N9ArrowType21NANOARROW_TYPE_BINARYE"></span><span id="_CPPv2N9ArrowType21NANOARROW_TYPE_BINARYE"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112a8ee5afb2525038c20e185307926af515"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_BINARY</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowType21NANOARRO [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType32NANOARROW_TYPE_FIXED_SIZE_BINARYE">
+<span id="_CPPv3N9ArrowType32NANOARROW_TYPE_FIXED_SIZE_BINARYE"></span><span id="_CPPv2N9ArrowType32NANOARROW_TYPE_FIXED_SIZE_BINARYE"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112a771f24b554e71dcff8b797aa1d3502dc"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_FIXED_SIZE_BINARY</span></span></span><a class="headerlink" h [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType21NANOARROW_TYPE_DATE32E">
+<span id="_CPPv3N9ArrowType21NANOARROW_TYPE_DATE32E"></span><span id="_CPPv2N9ArrowType21NANOARROW_TYPE_DATE32E"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112a6e30d0018e6506c9a478b86bbcaa23f7"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_DATE32</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowType21NANOARRO [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType21NANOARROW_TYPE_DATE64E">
+<span id="_CPPv3N9ArrowType21NANOARROW_TYPE_DATE64E"></span><span id="_CPPv2N9ArrowType21NANOARROW_TYPE_DATE64E"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112abf52d9c05682a4693ca4b22ca9795ce6"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_DATE64</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowType21NANOARRO [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType24NANOARROW_TYPE_TIMESTAMPE">
+<span id="_CPPv3N9ArrowType24NANOARROW_TYPE_TIMESTAMPE"></span><span id="_CPPv2N9ArrowType24NANOARROW_TYPE_TIMESTAMPE"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112ac0a42c3b1b1d4ed6990eeba778e22b75"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_TIMESTAMP</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowType2 [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType21NANOARROW_TYPE_TIME32E">
+<span id="_CPPv3N9ArrowType21NANOARROW_TYPE_TIME32E"></span><span id="_CPPv2N9ArrowType21NANOARROW_TYPE_TIME32E"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112a0fd9cc2ecb3faed39a0a1f8778888cda"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_TIME32</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowType21NANOARRO [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType21NANOARROW_TYPE_TIME64E">
+<span id="_CPPv3N9ArrowType21NANOARROW_TYPE_TIME64E"></span><span id="_CPPv2N9ArrowType21NANOARROW_TYPE_TIME64E"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112a76c431a0dddb6a66e9b4c87c31fb0fa4"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_TIME64</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowType21NANOARRO [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType30NANOARROW_TYPE_INTERVAL_MONTHSE">
+<span id="_CPPv3N9ArrowType30NANOARROW_TYPE_INTERVAL_MONTHSE"></span><span id="_CPPv2N9ArrowType30NANOARROW_TYPE_INTERVAL_MONTHSE"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112a70a8a5eb78835e393818a7e57ab8bfc9"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_INTERVAL_MONTHS</span></span></span><a class="headerlink" href="# [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType32NANOARROW_TYPE_INTERVAL_DAY_TIMEE">
+<span id="_CPPv3N9ArrowType32NANOARROW_TYPE_INTERVAL_DAY_TIMEE"></span><span id="_CPPv2N9ArrowType32NANOARROW_TYPE_INTERVAL_DAY_TIMEE"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112ad0f85038f8d7df4372e06c00b1778362"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_INTERVAL_DAY_TIME</span></span></span><a class="headerlink" h [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType25NANOARROW_TYPE_DECIMAL128E">
+<span id="_CPPv3N9ArrowType25NANOARROW_TYPE_DECIMAL128E"></span><span id="_CPPv2N9ArrowType25NANOARROW_TYPE_DECIMAL128E"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112a33270e33fcbdad2bf2ddda43e3ddc876"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_DECIMAL128</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowTy [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType25NANOARROW_TYPE_DECIMAL256E">
+<span id="_CPPv3N9ArrowType25NANOARROW_TYPE_DECIMAL256E"></span><span id="_CPPv2N9ArrowType25NANOARROW_TYPE_DECIMAL256E"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112a84696f5595041919b9d5647d64412f7c"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_DECIMAL256</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowTy [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType19NANOARROW_TYPE_LISTE">
+<span id="_CPPv3N9ArrowType19NANOARROW_TYPE_LISTE"></span><span id="_CPPv2N9ArrowType19NANOARROW_TYPE_LISTE"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112a48fa1fcf3b2956e237fe722ca993a497"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_LIST</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowType19NANOARROW_TYPE [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType21NANOARROW_TYPE_STRUCTE">
+<span id="_CPPv3N9ArrowType21NANOARROW_TYPE_STRUCTE"></span><span id="_CPPv2N9ArrowType21NANOARROW_TYPE_STRUCTE"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112aa38ac193f6727c8a2c69e408d84bdbc1"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_STRUCT</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowType21NANOARRO [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType27NANOARROW_TYPE_SPARSE_UNIONE">
+<span id="_CPPv3N9ArrowType27NANOARROW_TYPE_SPARSE_UNIONE"></span><span id="_CPPv2N9ArrowType27NANOARROW_TYPE_SPARSE_UNIONE"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112ab9b8348e189b6d9e191b449cd81ddb08"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_SPARSE_UNION</span></span></span><a class="headerlink" href="#_CPPv4N9A [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType26NANOARROW_TYPE_DENSE_UNIONE">
+<span id="_CPPv3N9ArrowType26NANOARROW_TYPE_DENSE_UNIONE"></span><span id="_CPPv2N9ArrowType26NANOARROW_TYPE_DENSE_UNIONE"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112abec1e41c81d90b7094c6d2191fd765fb"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_DENSE_UNION</span></span></span><a class="headerlink" href="#_CPPv4N9Arro [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType25NANOARROW_TYPE_DICTIONARYE">
+<span id="_CPPv3N9ArrowType25NANOARROW_TYPE_DICTIONARYE"></span><span id="_CPPv2N9ArrowType25NANOARROW_TYPE_DICTIONARYE"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112a516dffded82c8bcb046411c752e8ba93"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_DICTIONARY</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowTy [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType18NANOARROW_TYPE_MAPE">
+<span id="_CPPv3N9ArrowType18NANOARROW_TYPE_MAPE"></span><span id="_CPPv2N9ArrowType18NANOARROW_TYPE_MAPE"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112ab3b43d3257c276c7b94045d52a394442"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_MAP</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowType18NANOARROW_TYPE_MA [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType24NANOARROW_TYPE_EXTENSIONE">
+<span id="_CPPv3N9ArrowType24NANOARROW_TYPE_EXTENSIONE"></span><span id="_CPPv2N9ArrowType24NANOARROW_TYPE_EXTENSIONE"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112af53d6166608e7f8e1b188f3b9c2b4182"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_EXTENSION</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowType2 [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType30NANOARROW_TYPE_FIXED_SIZE_LISTE">
+<span id="_CPPv3N9ArrowType30NANOARROW_TYPE_FIXED_SIZE_LISTE"></span><span id="_CPPv2N9ArrowType30NANOARROW_TYPE_FIXED_SIZE_LISTE"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112a14ddc81fde0ef9c0618c90ad878e66aa"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_FIXED_SIZE_LIST</span></span></span><a class="headerlink" href="# [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType23NANOARROW_TYPE_DURATIONE">
+<span id="_CPPv3N9ArrowType23NANOARROW_TYPE_DURATIONE"></span><span id="_CPPv2N9ArrowType23NANOARROW_TYPE_DURATIONE"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112abfad768a3d9ecf4d053a1e9413355bd7"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_DURATION</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowType23NA [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType27NANOARROW_TYPE_LARGE_STRINGE">
+<span id="_CPPv3N9ArrowType27NANOARROW_TYPE_LARGE_STRINGE"></span><span id="_CPPv2N9ArrowType27NANOARROW_TYPE_LARGE_STRINGE"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112a8903da4c674d879f9ab6349a5d49f003"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_LARGE_STRING</span></span></span><a class="headerlink" href="#_CPPv4N9A [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType27NANOARROW_TYPE_LARGE_BINARYE">
+<span id="_CPPv3N9ArrowType27NANOARROW_TYPE_LARGE_BINARYE"></span><span id="_CPPv2N9ArrowType27NANOARROW_TYPE_LARGE_BINARYE"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112a76d46577042b72538298c43d2f354295"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_LARGE_BINARY</span></span></span><a class="headerlink" href="#_CPPv4N9A [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType25NANOARROW_TYPE_LARGE_LISTE">
+<span id="_CPPv3N9ArrowType25NANOARROW_TYPE_LARGE_LISTE"></span><span id="_CPPv2N9ArrowType25NANOARROW_TYPE_LARGE_LISTE"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112ade0f94848d6a85b4b28b327fed3e0015"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_LARGE_LIST</span></span></span><a class="headerlink" href="#_CPPv4N9ArrowTy [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N9ArrowType38NANOARROW_TYPE_INTERVAL_MONTH_DAY_NANOE">
+<span id="_CPPv3N9ArrowType38NANOARROW_TYPE_INTERVAL_MONTH_DAY_NANOE"></span><span id="_CPPv2N9ArrowType38NANOARROW_TYPE_INTERVAL_MONTH_DAY_NANOE"></span><span class="target" id="group__nanoarrow-utils_1ggae040d7d64b46dd1dc796225aa77c2112a33c39bc0f36725f86120c38c3d456070"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TYPE_INTERVAL_MONTH_DAY_NANO</span></span></span><a cl [...]
+<dd></dd></dl>
+
 </dd></dl>
 
-<dl class="cpp var">
-<dt class="sig sig-object cpp" id="_CPPv4N15ArrowSchemaView14extension_nameE">
-<span id="_CPPv3N15ArrowSchemaView14extension_nameE"></span><span id="_CPPv2N15ArrowSchemaView14extension_nameE"></span><span id="ArrowSchemaView::extension_name__ArrowStringView"></span><span class="target" id="struct_arrow_schema_view_1a0d085aea742e822502485445e580dea2"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowStringView</span></span><span class="w"> </span><span class="sig-name descname"><span class="n" [...]
-<dd><p>The extension type name if it exists. </p>
-<p>If the ARROW:extension:name key is present in schema.metadata, extension_name.data will be non-NULL. </p>
+<dl class="cpp enum">
+<dt class="sig sig-object cpp" id="_CPPv413ArrowTimeUnit">
+<span id="_CPPv313ArrowTimeUnit"></span><span id="_CPPv213ArrowTimeUnit"></span><span class="target" id="group__nanoarrow-utils_1ga7048580e7cf78a7d6baac47a6b39e1ac"></span><span class="k"><span class="pre">enum</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowTimeUnit</span></span></span><a class="headerlink" href="#_CPPv413ArrowTimeUnit" title="Permalink to this definition">#</a><br /></dt>
+<dd><p>Arrow time unit enumerator. </p>
+<p>These names and values map to the corresponding arrow::TimeUnit::type enumerator. </p>
+<p><em>Values:</em></p>
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N13ArrowTimeUnit26NANOARROW_TIME_UNIT_SECONDE">
+<span id="_CPPv3N13ArrowTimeUnit26NANOARROW_TIME_UNIT_SECONDE"></span><span id="_CPPv2N13ArrowTimeUnit26NANOARROW_TIME_UNIT_SECONDE"></span><span class="target" id="group__nanoarrow-utils_1gga7048580e7cf78a7d6baac47a6b39e1aca5bc21e6c8d406c9c36da2ba85663cd73"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TIME_UNIT_SECOND</span></span></span><a class="headerlink" href="#_C [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N13ArrowTimeUnit25NANOARROW_TIME_UNIT_MILLIE">
+<span id="_CPPv3N13ArrowTimeUnit25NANOARROW_TIME_UNIT_MILLIE"></span><span id="_CPPv2N13ArrowTimeUnit25NANOARROW_TIME_UNIT_MILLIE"></span><span class="target" id="group__nanoarrow-utils_1gga7048580e7cf78a7d6baac47a6b39e1aca63ca1ac70e0f7da665d53091e355a6e7"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TIME_UNIT_MILLI</span></span></span><a class="headerlink" href="#_CPPv [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N13ArrowTimeUnit25NANOARROW_TIME_UNIT_MICROE">
+<span id="_CPPv3N13ArrowTimeUnit25NANOARROW_TIME_UNIT_MICROE"></span><span id="_CPPv2N13ArrowTimeUnit25NANOARROW_TIME_UNIT_MICROE"></span><span class="target" id="group__nanoarrow-utils_1gga7048580e7cf78a7d6baac47a6b39e1aca1592fff76ca5a4dd006b9e7e375d2885"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TIME_UNIT_MICRO</span></span></span><a class="headerlink" href="#_CPPv [...]
+<dd></dd></dl>
+
+<dl class="cpp enumerator">
+<dt class="sig sig-object cpp" id="_CPPv4N13ArrowTimeUnit24NANOARROW_TIME_UNIT_NANOE">
+<span id="_CPPv3N13ArrowTimeUnit24NANOARROW_TIME_UNIT_NANOE"></span><span id="_CPPv2N13ArrowTimeUnit24NANOARROW_TIME_UNIT_NANOE"></span><span class="target" id="group__nanoarrow-utils_1gga7048580e7cf78a7d6baac47a6b39e1acaae0643d5e56d7feb6415a4b7cd36f2be"></span><span class="k"><span class="pre">enumerator</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_TIME_UNIT_NANO</span></span></span><a class="headerlink" href="#_CPPv4N1 [...]
+<dd></dd></dl>
+
 </dd></dl>
 
-<dl class="cpp var">
-<dt class="sig sig-object cpp" id="_CPPv4N15ArrowSchemaView18extension_metadataE">
-<span id="_CPPv3N15ArrowSchemaView18extension_metadataE"></span><span id="_CPPv2N15ArrowSchemaView18extension_metadataE"></span><span id="ArrowSchemaView::extension_metadata__ArrowStringView"></span><span class="target" id="struct_arrow_schema_view_1afb68ff6039541facdc3afb61c9acd558"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowStringView</span></span><span class="w"> </span><span class="sig-name descname"><sp [...]
-<dd><p>The extension type metadata if it exists. </p>
-<p>If the ARROW:extension:metadata key is present in schema.metadata, extension_metadata.data will be non-NULL. </p>
+</div>
+<div class="breathe-sectiondef docutils container">
+<p class="breathe-sectiondef-title rubric" id="breathe-section-title-functions">Functions</p>
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv421ArrowNanoarrowBuildIdv">
+<span id="_CPPv321ArrowNanoarrowBuildIdv"></span><span id="_CPPv221ArrowNanoarrowBuildIdv"></span><span id="ArrowNanoarrowBuildId"></span><span class="target" id="group__nanoarrow-utils_1ga44b48aa464ce0b856709965124eb6a29"></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span class [...]
+<dd><p>Return the build id against which the library was compiled. </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv415ArrowLayoutInitP11ArrowLayout9ArrowType">
+<span id="_CPPv315ArrowLayoutInitP11ArrowLayout9ArrowType"></span><span id="_CPPv215ArrowLayoutInitP11ArrowLayout9ArrowType"></span><span id="ArrowLayoutInit__ArrowLayoutP.ArrowType"></span><span class="target" id="group__nanoarrow-utils_1gac1954fef441ad60b50e688b58ee04280"></span><span class="kt"><span class="pre">void</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowLayoutInit</span></span></span><span class="sig-paren">(</span [...]
+<dd><p>Initialize a description of buffer arrangements from a storage type. </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv413ArrowCharViewPKc">
+<span id="_CPPv313ArrowCharViewPKc"></span><span id="_CPPv213ArrowCharViewPKc"></span><span id="ArrowCharView__cCP"></span><span class="target" id="group__nanoarrow-utils_1ga650e076b60473a35a18ff0bc52b51474"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv4 [...]
+<dd><p>Create a string view from a null-terminated string. </p>
 </dd></dl>
 
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv415ArrowTypeString9ArrowType">
+<span id="_CPPv315ArrowTypeString9ArrowType"></span><span id="_CPPv215ArrowTypeString9ArrowType"></span><span id="ArrowTypeString__ArrowType"></span><span class="target" id="group__nanoarrow-utils_1ga6d81430b30247f113b57ec00734137fd"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt">< [...]
+<dd><p>Get a string value of an enum ArrowType value. </p>
+<p>Returns NULL for invalid values for type </p>
+</dd></dl>
+
+<dl class="cpp function">
+<dt class="sig sig-object cpp" id="_CPPv419ArrowTimeUnitString13ArrowTimeUnit">
+<span id="_CPPv319ArrowTimeUnitString13ArrowTimeUnit"></span><span id="_CPPv219ArrowTimeUnitString13ArrowTimeUnit"></span><span id="ArrowTimeUnitString__ArrowTimeUnit"></span><span class="target" id="group__nanoarrow-utils_1ga3bd1c42ce1f91b14a67088c30d1f7885"></span><span class="k"><span class="pre">static</span></span><span class="w"> </span><span class="k"><span class="pre">inline</span></span><span class="w"> </span><span class="k"><span class="pre">const</span></span><span class="w"> [...]
+<dd><p>Get a string value of an enum ArrowTimeUnit value. </p>
+<p>Returns NULL for invalid values for time_unit </p>
+</dd></dl>
+
+</div>
+<dl class="cpp struct">
+<dt class="sig sig-object cpp" id="_CPPv415ArrowStringView">
+<span id="_CPPv315ArrowStringView"></span><span id="_CPPv215ArrowStringView"></span><span id="ArrowStringView"></span><span class="target" id="struct_arrow_string_view"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowStringView</span></span></span><a class="headerlink" href="#_CPPv415ArrowStringView" title="Permalink to this definition">#</a><br /></dt>
+<dd><div class="docutils container">
+<em>#include &lt;nanoarrow_types.h&gt;</em></div>
+<p>An non-owning view of a string. </p>
+<div class="breathe-sectiondef docutils container">
+<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
 <dl class="cpp var">
-<dt class="sig sig-object cpp" id="_CPPv4N15ArrowSchemaView10fixed_sizeE">
-<span id="_CPPv3N15ArrowSchemaView10fixed_sizeE"></span><span id="_CPPv2N15ArrowSchemaView10fixed_sizeE"></span><span id="ArrowSchemaView::fixed_size__int32_t"></span><span class="target" id="struct_arrow_schema_view_1ab74f333f4ab5889a4d5b6352a9e8acd9"></span><span class="n"><span class="pre">int32_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">fixed_size</span></span></span><a class="headerlink" href="#_CPPv4N15ArrowSchemaView10f [...]
-<dd><p>Format fixed size parameter. </p>
-<p>This value is set when parsing a fixed-size binary or fixed-size list schema; this value is undefined for other types. For a fixed-size binary schema this value is in bytes; for a fixed-size list schema this value refers to the number of child elements for each element of the parent. </p>
+<dt class="sig sig-object cpp" id="_CPPv4N15ArrowStringView4dataE">
+<span id="_CPPv3N15ArrowStringView4dataE"></span><span id="_CPPv2N15ArrowStringView4dataE"></span><span id="ArrowStringView::data__cCP"></span><span class="target" id="struct_arrow_string_view_1ac063e6ca50dee2c35f762b849ec286a4"></span><span class="k"><span class="pre">const</span></span><span class="w"> </span><span class="kt"><span class="pre">char</span></span><span class="w"> </span><span class="p"><span class="pre">*</span></span><span class="sig-name descname"><span class="n"><span [...]
+<dd><p>A pointer to the start of the string. </p>
+<p>If n_bytes is 0, this value may be NULL. </p>
 </dd></dl>
 
 <dl class="cpp var">
-<dt class="sig sig-object cpp" id="_CPPv4N15ArrowSchemaView16decimal_bitwidthE">
-<span id="_CPPv3N15ArrowSchemaView16decimal_bitwidthE"></span><span id="_CPPv2N15ArrowSchemaView16decimal_bitwidthE"></span><span id="ArrowSchemaView::decimal_bitwidth__int32_t"></span><span class="target" id="struct_arrow_schema_view_1a7d632b171c76ca184d4a50f144dd16a0"></span><span class="n"><span class="pre">int32_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">decimal_bitwidth</span></span></span><a class="headerlink" href="#_CP [...]
-<dd><p>Decimal bitwidth. </p>
-<p>This value is set when parsing a decimal type schema; this value is undefined for other types. </p>
+<dt class="sig sig-object cpp" id="_CPPv4N15ArrowStringView7n_bytesE">
+<span id="_CPPv3N15ArrowStringView7n_bytesE"></span><span id="_CPPv2N15ArrowStringView7n_bytesE"></span><span id="ArrowStringView::n_bytes__int64_t"></span><span class="target" id="struct_arrow_string_view_1a1bed64087bb58555ce7e01dd393189ed"></span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">n_bytes</span></span></span><a class="headerlink" href="#_CPPv4N15ArrowStringView7n_bytesE" title= [...]
+<dd><p>The size of the string in bytes,. </p>
+<p>(Not including the null terminator.) </p>
+</dd></dl>
+
+</div>
 </dd></dl>
 
+<dl class="cpp struct">
+<dt class="sig sig-object cpp" id="_CPPv415ArrowBufferView">
+<span id="_CPPv315ArrowBufferView"></span><span id="_CPPv215ArrowBufferView"></span><span id="ArrowBufferView"></span><span class="target" id="struct_arrow_buffer_view"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowBufferView</span></span></span><a class="headerlink" href="#_CPPv415ArrowBufferView" title="Permalink to this definition">#</a><br /></dt>
+<dd><div class="docutils container">
+<em>#include &lt;nanoarrow_types.h&gt;</em></div>
+<p>An non-owning view of a buffer. </p>
+<div class="breathe-sectiondef docutils container">
+<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
 <dl class="cpp var">
-<dt class="sig sig-object cpp" id="_CPPv4N15ArrowSchemaView17decimal_precisionE">
-<span id="_CPPv3N15ArrowSchemaView17decimal_precisionE"></span><span id="_CPPv2N15ArrowSchemaView17decimal_precisionE"></span><span id="ArrowSchemaView::decimal_precision__int32_t"></span><span class="target" id="struct_arrow_schema_view_1a1cc325480d15c9823e6860b4caacb697"></span><span class="n"><span class="pre">int32_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">decimal_precision</span></span></span><a class="headerlink" href=" [...]
-<dd><p>Decimal precision. </p>
-<p>This value is set when parsing a decimal type schema; this value is undefined for other types. </p>
+<dt class="sig sig-object cpp" id="_CPPv4N15ArrowBufferView4dataE">
+<span id="_CPPv3N15ArrowBufferView4dataE"></span><span id="_CPPv2N15ArrowBufferView4dataE"></span><span class="target" id="struct_arrow_buffer_view_1ae833e1df12c16e394e495dcb5e46a446"></span><span class="k"><span class="pre">union</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv415ArrowBufferView" title="ArrowBufferView"><span class="n"><span class="pre">ArrowBufferView</span></span></a><span class="p"><span class="pre">::</span></span><span class="n"><span [...]
+<dd><p>A pointer to the start of the buffer. </p>
+<p>If n_bytes is 0, this value may be NULL. </p>
 </dd></dl>
 
 <dl class="cpp var">
-<dt class="sig sig-object cpp" id="_CPPv4N15ArrowSchemaView13decimal_scaleE">
-<span id="_CPPv3N15ArrowSchemaView13decimal_scaleE"></span><span id="_CPPv2N15ArrowSchemaView13decimal_scaleE"></span><span id="ArrowSchemaView::decimal_scale__int32_t"></span><span class="target" id="struct_arrow_schema_view_1a138e714b344e2bd3b5d1427ca38221aa"></span><span class="n"><span class="pre">int32_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">decimal_scale</span></span></span><a class="headerlink" href="#_CPPv4N15ArrowS [...]
-<dd><p>Decimal scale. </p>
-<p>This value is set when parsing a decimal type schema; this value is undefined for other types. </p>
+<dt class="sig sig-object cpp" id="_CPPv4N15ArrowBufferView7n_bytesE">
+<span id="_CPPv3N15ArrowBufferView7n_bytesE"></span><span id="_CPPv2N15ArrowBufferView7n_bytesE"></span><span id="ArrowBufferView::n_bytes__int64_t"></span><span class="target" id="struct_arrow_buffer_view_1a186572f8f60b463c029c932fc513f7ca"></span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">n_bytes</span></span></span><a class="headerlink" href="#_CPPv4N15ArrowBufferView7n_bytesE" title= [...]
+<dd><p>The size of the buffer in bytes. </p>
+</dd></dl>
+
+</div>
 </dd></dl>
 
+<dl class="cpp struct">
+<dt class="sig sig-object cpp" id="_CPPv411ArrowLayout">
+<span id="_CPPv311ArrowLayout"></span><span id="_CPPv211ArrowLayout"></span><span id="ArrowLayout"></span><span class="target" id="struct_arrow_layout"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">ArrowLayout</span></span></span><a class="headerlink" href="#_CPPv411ArrowLayout" title="Permalink to this definition">#</a><br /></dt>
+<dd><div class="docutils container">
+<em>#include &lt;nanoarrow_types.h&gt;</em></div>
+<p>A description of an arrangement of buffers. </p>
+<p>Contains the minimum amount of information required to calculate the size of each buffer in an ArrowArray knowing only the length and offset of the array. </p>
+<div class="breathe-sectiondef docutils container">
+<p class="breathe-sectiondef-title rubric" id="breathe-section-title-public-members">Public Members</p>
 <dl class="cpp var">
-<dt class="sig sig-object cpp" id="_CPPv4N15ArrowSchemaView9time_unitE">
-<span id="_CPPv3N15ArrowSchemaView9time_unitE"></span><span id="_CPPv2N15ArrowSchemaView9time_unitE"></span><span id="ArrowSchemaView::time_unit__ArrowTimeUnit"></span><span class="target" id="struct_arrow_schema_view_1a51df746b957ea34af6128a111bd5e43e"></span><span class="k"><span class="pre">enum</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv413ArrowTimeUnit" title="ArrowTimeUnit"><span class="n"><span class="pre">ArrowTimeUnit</span></span></a><span cl [...]
-<dd><p>Format time unit parameter. </p>
-<p>This value is set when parsing a date/time type. The value is undefined for other types. </p>
+<dt class="sig sig-object cpp" id="_CPPv4N11ArrowLayout11buffer_typeE">
+<span id="_CPPv3N11ArrowLayout11buffer_typeE"></span><span id="_CPPv2N11ArrowLayout11buffer_typeE"></span><span id="ArrowLayout::buffer_type__ArrowBufferTypeA"></span><span class="target" id="struct_arrow_layout_1a4b4ab80af5f99668e1a7bd169795c381"></span><span class="k"><span class="pre">enum</span></span><span class="w"> </span><a class="reference internal" href="#_CPPv415ArrowBufferType" title="ArrowBufferType"><span class="n"><span class="pre">ArrowBufferType</span></span></a><span cl [...]
+<dd><p>The function of each buffer. </p>
 </dd></dl>
 
 <dl class="cpp var">
-<dt class="sig sig-object cpp" id="_CPPv4N15ArrowSchemaView8timezoneE">
-<span id="_CPPv3N15ArrowSchemaView8timezoneE"></span><span id="_CPPv2N15ArrowSchemaView8timezoneE"></span><span id="ArrowSchemaView::timezone__ArrowStringView"></span><span class="target" id="struct_arrow_schema_view_1a7b3741760b3b6259d1277d50e163ea63"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowStringView</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">t [...]
-<dd><p>Format timezone parameter. </p>
-<p>This value is set when parsing a timestamp type and represents the timezone format parameter. The ArrowStrintgView points to data within the schema and the value is undefined for other types. </p>
+<dt class="sig sig-object cpp" id="_CPPv4N11ArrowLayout17element_size_bitsE">
+<span id="_CPPv3N11ArrowLayout17element_size_bitsE"></span><span id="_CPPv2N11ArrowLayout17element_size_bitsE"></span><span id="ArrowLayout::element_size_bits__int64_tA"></span><span class="target" id="struct_arrow_layout_1aa6dec63c922194420378784419e00cd5"></span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">element_size_bits</span></span></span><span class="p"><span class="pre">[</span></ [...]
+<dd><p>The size of an element each buffer or 0 if this size is variable or unknown. </p>
 </dd></dl>
 
 <dl class="cpp var">
-<dt class="sig sig-object cpp" id="_CPPv4N15ArrowSchemaView14union_type_idsE">
-<span id="_CPPv3N15ArrowSchemaView14union_type_idsE"></span><span id="_CPPv2N15ArrowSchemaView14union_type_idsE"></span><span id="ArrowSchemaView::union_type_ids__ArrowStringView"></span><span class="target" id="struct_arrow_schema_view_1ab58d468e05f51aba4d4633b32853147a"></span><span class="k"><span class="pre">struct</span></span><span class="w"> </span><span class="n"><span class="pre">ArrowStringView</span></span><span class="w"> </span><span class="sig-name descname"><span class="n" [...]
-<dd><p>Union type ids parameter. </p>
-<p>This value is set when parsing a union type and represents type ids parameter. The ArrowStringView points to data within the schema and the value is undefined for other types. </p>
+<dt class="sig sig-object cpp" id="_CPPv4N11ArrowLayout19child_size_elementsE">
+<span id="_CPPv3N11ArrowLayout19child_size_elementsE"></span><span id="_CPPv2N11ArrowLayout19child_size_elementsE"></span><span id="ArrowLayout::child_size_elements__int64_t"></span><span class="target" id="struct_arrow_layout_1a3029a338b3c716c3f7ddadada280c880"></span><span class="n"><span class="pre">int64_t</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">child_size_elements</span></span></span><a class="headerlink" href="#_CPPv4N1 [...]
+<dd><p>The number of elements in the child array per element in this array for a fixed-size list. </p>
 </dd></dl>
 
 </div>
 </dd></dl>
 
+</dd></dl>
+
+</section>
+<section id="arrow-c-data-interface">
+<h2>Arrow C Data Interface<a class="headerlink" href="#arrow-c-data-interface" title="Permalink to this heading">#</a></h2>
+<div class="admonition warning">
+<p class="admonition-title">Warning</p>
+<p>doxygengroup: Cannot find group “nanoarrow-arrow-cdata” in doxygen xml output for project “nanoarrow_c” from directory: ../../src/apidoc/xml</p>
+</div>
 </section>
 </section>
 
@@ -1063,7 +1691,7 @@
                 <!-- Previous / next buttons -->
 <div class='prev-next-area'>
   <a class='left-prev' id="prev-link" href="index.html" title="previous page">
-      <i class="fas fa-angle-left"></i>
+      <i class="fa-solid fa-angle-left"></i>
       <div class="prev-next-info">
           <p class="prev-next-subtitle">previous</p>
           <p class="prev-next-title">nanoarrow</p>
@@ -1081,13 +1709,63 @@
 <div class="toc-item">
   
 <div class="tocsection onthispage">
-    <i class="fas fa-list"></i> On this page
+    <i class="fa-solid fa-list"></i> On this page
 </div>
 <nav id="bd-toc-nav" class="page-toc">
     <ul class="visible nav section-nav flex-column">
  <li class="toc-h2 nav-item toc-entry">
-  <a class="reference internal nav-link" href="#nanoarrow-h">
-   nanoarrow.h
+  <a class="reference internal nav-link" href="#creating-schemas">
+   Creating schemas
+  </a>
+ </li>
+ <li class="toc-h2 nav-item toc-entry">
+  <a class="reference internal nav-link" href="#reading-schemas">
+   Reading schemas
+  </a>
+ </li>
+ <li class="toc-h2 nav-item toc-entry">
+  <a class="reference internal nav-link" href="#creating-arrays">
+   Creating arrays
+  </a>
+ </li>
+ <li class="toc-h2 nav-item toc-entry">
+  <a class="reference internal nav-link" href="#reading-arrays">
+   Reading arrays
+  </a>
+ </li>
+ <li class="toc-h2 nav-item toc-entry">
+  <a class="reference internal nav-link" href="#owning-growable-buffers">
+   Owning, growable buffers
+  </a>
+ </li>
+ <li class="toc-h2 nav-item toc-entry">
+  <a class="reference internal nav-link" href="#bitmap-utilities">
+   Bitmap utilities
+  </a>
+ </li>
+ <li class="toc-h2 nav-item toc-entry">
+  <a class="reference internal nav-link" href="#create-read-and-modify-schema-metadata">
+   Create, read, and modify schema metadata
+  </a>
+ </li>
+ <li class="toc-h2 nav-item toc-entry">
+  <a class="reference internal nav-link" href="#memory-management">
+   Memory management
+  </a>
+ </li>
+ <li class="toc-h2 nav-item toc-entry">
+  <a class="reference internal nav-link" href="#error-handling">
+   Error handling
+  </a>
+ </li>
+ <li class="toc-h2 nav-item toc-entry">
+  <a class="reference internal nav-link" href="#utility-data-structures">
+   Utility data structures
+  </a>
+ </li>
+ <li class="toc-h2 nav-item toc-entry">
+  <a class="reference internal nav-link" href="#arrow-c-data-interface">
+   Arrow C Data Interface
   </a>
  </li>
 </ul>
@@ -1097,10 +1775,15 @@
 
 <div class="toc-item">
   
+<div id="searchbox"></div>
+</div>
+
+<div class="toc-item">
+  
 
 <div class="tocsection editthispage">
     <a href="https://github.com/apache/arrow-nanoarrow/edit/main/docs/source/c.rst">
-        <i class="fas fa-pencil-alt"></i> Edit this page
+        <i class="fa-solid fa-pencil"></i> Edit this page
     </a>
 </div>
 
@@ -1110,7 +1793,7 @@
   
 <div class="tocsection sourcelink">
     <a href="_sources/c.rst.txt">
-        <i class="fas fa-file-alt"></i> Show Source
+        <i class="fa-solid fa-file-lines"></i> Show Source
     </a>
 </div>
 
@@ -1133,7 +1816,7 @@
   
     
   <!-- Scripts loaded after <body> so the DOM is not blocked -->
-  <script src="_static/scripts/pydata-sphinx-theme.js?digest=9b1a4fa89bdd0e95b23b"></script>
+  <script src="_static/scripts/pydata-sphinx-theme.js?digest=1e1de1a1873e13ef5536"></script>
 
   <footer class="bd-footer"><div class="bd-footer__inner container">
   
@@ -1150,7 +1833,7 @@
   <div class="footer-item">
     
 <p class="sphinx-version">
-Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.2.2.<br>
+Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.2.3.<br>
 </p>
 
   </div>
diff --git a/dev/genindex.html b/dev/genindex.html
index 172f283..c6955b2 100644
--- a/dev/genindex.html
+++ b/dev/genindex.html
@@ -12,8 +12,8 @@
   </script>
   
   <!-- Loaded before other Sphinx assets -->
-  <link href="_static/styles/theme.css?digest=9b1a4fa89bdd0e95b23b" rel="stylesheet">
-<link href="_static/styles/pydata-sphinx-theme.css?digest=9b1a4fa89bdd0e95b23b" rel="stylesheet">
+  <link href="_static/styles/theme.css?digest=1e1de1a1873e13ef5536" rel="stylesheet">
+<link href="_static/styles/pydata-sphinx-theme.css?digest=1e1de1a1873e13ef5536" rel="stylesheet">
 
   
   <link rel="stylesheet"
@@ -22,11 +22,13 @@
     href="_static/vendor/fontawesome/6.1.2/webfonts/fa-solid-900.woff2">
   <link rel="preload" as="font" type="font/woff2" crossorigin
     href="_static/vendor/fontawesome/6.1.2/webfonts/fa-brands-400.woff2">
+  <link rel="preload" as="font" type="font/woff2" crossorigin
+    href="_static/vendor/fontawesome/6.1.2/webfonts/fa-regular-400.woff2">
 
     <link rel="stylesheet" type="text/css" href="_static/pygments.css" />
   
   <!-- Pre-loaded scripts that we'll load fully later -->
-  <link rel="preload" as="script" href="_static/scripts/pydata-sphinx-theme.js?digest=9b1a4fa89bdd0e95b23b">
+  <link rel="preload" as="script" href="_static/scripts/pydata-sphinx-theme.js?digest=1e1de1a1873e13ef5536">
 
     <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
     <script src="_static/jquery.js"></script>
@@ -58,7 +60,7 @@
     <div class="search-button__search-container">
       
 <form class="bd-search d-flex align-items-center" action="search.html" method="get">
-  <i class="icon fas fa-search"></i>
+  <i class="fa-solid fa-magnifying-glass"></i>
   <input type="search" class="form-control" name="q" id="search-input" placeholder="Search the docs ..." aria-label="Search the docs ..." autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false">
   <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd>K</kbd></span>
 </form>
@@ -68,7 +70,7 @@
   
   <nav class="bd-header navbar navbar-expand-lg bd-navbar" id="navbar-main"><div class="bd-header__inner bd-page-width">
   <label class="sidebar-toggle primary-toggle" for="__primary">
-      <span class="fas fa-bars"></span>
+      <span class="fa-solid fa-bars"></span>
   </label>
   <div id="navbar-start">
     
@@ -107,13 +109,13 @@
         
                 <li class="nav-item">
                     <a class="nav-link" href="c.html">
-                        C API
+                        C API Reference
                     </a>
                 </li>
                 
 
             <li class="nav-item">
-                <a class="nav-link nav-external" href="r/index.html">R API<i class="fas fa-external-link-alt"></i></a>
+                <a class="nav-link nav-external" href="r/index.html">R Package<i class="fa-solid fa-up-right-from-square"></i></a>
             </li>
     </ul>
 </nav>
@@ -124,16 +126,16 @@
     <div id="navbar-end">
       <div class="navbar-end-item navbar-end__search-button-container">
         
-<button class="btn btn-sm navbar-btn search-button search-button__button" title="Search">
-  <i class="fas fa-search"></i>
+<button class="btn btn-sm navbar-btn search-button search-button__button" title="Search" data-toggle="tooltip">
+  <i class="fa-solid fa-magnifying-glass"></i>
 </button>
       </div>
       
       <div class="navbar-end-item">
-        <span class="theme-switch-button btn btn-sm btn-outline-primary navbar-btn rounded-circle">
-    <a class="theme-switch" data-mode="light"><i class="fas fa-sun"></i></a>
-    <a class="theme-switch" data-mode="dark"><i class="far fa-moon"></i></a>
-    <a class="theme-switch" data-mode="auto"><i class="fas fa-adjust"></i></a>
+        <span class="theme-switch-button btn btn-sm btn-outline-primary navbar-btn rounded-circle" title="light/dark" data-toggle="tooltip">
+    <a class="theme-switch" data-mode="light"><i class="fa-solid fa-sun"></i></a>
+    <a class="theme-switch" data-mode="dark"><i class="fa-regular fa-moon"></i></a>
+    <a class="theme-switch" data-mode="auto"><i class="fa-solid fa-circle-half-stroke"></i></a>
 </span>
       </div>
       
@@ -148,14 +150,14 @@
 
   
   <div class="search-button-container--mobile">
-<button class="btn btn-sm navbar-btn search-button search-button__button" title="Search">
-  <i class="fas fa-search"></i>
+<button class="btn btn-sm navbar-btn search-button search-button__button" title="Search" data-toggle="tooltip">
+  <i class="fa-solid fa-magnifying-glass"></i>
 </button>
   </div>
 
   
   <label class="sidebar-toggle secondary-toggle" for="__secondary">
-      <span class="fas fa-outdent"></span>
+      <span class="fa-solid fa-outdent"></span>
   </label>
   
 
@@ -183,13 +185,13 @@
         
                 <li class="nav-item">
                     <a class="nav-link" href="c.html">
-                        C API
+                        C API Reference
                     </a>
                 </li>
                 
 
             <li class="nav-item">
-                <a class="nav-link nav-external" href="r/index.html">R API<i class="fas fa-external-link-alt"></i></a>
+                <a class="nav-link nav-external" href="r/index.html">R Package<i class="fa-solid fa-up-right-from-square"></i></a>
             </li>
     </ul>
 </nav>
@@ -203,10 +205,10 @@
     <div class="sidebar-header-items__end">
       
       <div class="navbar-end-item">
-        <span class="theme-switch-button btn btn-sm btn-outline-primary navbar-btn rounded-circle">
-    <a class="theme-switch" data-mode="light"><i class="fas fa-sun"></i></a>
-    <a class="theme-switch" data-mode="dark"><i class="far fa-moon"></i></a>
-    <a class="theme-switch" data-mode="auto"><i class="fas fa-adjust"></i></a>
+        <span class="theme-switch-button btn btn-sm btn-outline-primary navbar-btn rounded-circle" title="light/dark" data-toggle="tooltip">
+    <a class="theme-switch" data-mode="light"><i class="fa-solid fa-sun"></i></a>
+    <a class="theme-switch" data-mode="dark"><i class="fa-regular fa-moon"></i></a>
+    <a class="theme-switch" data-mode="auto"><i class="fa-solid fa-circle-half-stroke"></i></a>
 </span>
       </div>
       
@@ -223,7 +225,7 @@
   <div class="sidebar-start-items sidebar-primary__section">
     <div class="sidebar-start-items__item">
 <form class="bd-search d-flex align-items-center" action="search.html" method="get">
-  <i class="icon fas fa-search"></i>
+  <i class="fa-solid fa-magnifying-glass"></i>
   <input type="search" class="form-control" name="q" id="search-input" placeholder="Search the docs ..." aria-label="Search the docs ..." autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false">
   <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd>K</kbd></span>
 </form>
@@ -256,6 +258,7 @@
 
 <div class="genindex-jumpbox">
  <a href="#A"><strong>A</strong></a>
+ | <a href="#N"><strong>N</strong></a>
  
 </div>
 <h2 id="A">A</h2>
@@ -298,6 +301,20 @@
       <li><a href="c.html#_CPPv424ArrowArrayStartAppendingP10ArrowArray">ArrowArrayStartAppending (C++ function)</a>
 </li>
       <li><a href="c.html#_CPPv424ArrowArrayValidityBitmapP10ArrowArray">ArrowArrayValidityBitmap (C++ function)</a>
+</li>
+      <li><a href="c.html#_CPPv414ArrowArrayView">ArrowArrayView (C++ struct)</a>
+</li>
+      <li><a href="c.html#_CPPv4N14ArrowArrayView5arrayE">ArrowArrayView::array (C++ member)</a>
+</li>
+      <li><a href="c.html#_CPPv4N14ArrowArrayView12buffer_viewsE">ArrowArrayView::buffer_views (C++ member)</a>
+</li>
+      <li><a href="c.html#_CPPv4N14ArrowArrayView8childrenE">ArrowArrayView::children (C++ member)</a>
+</li>
+      <li><a href="c.html#_CPPv4N14ArrowArrayView6layoutE">ArrowArrayView::layout (C++ member)</a>
+</li>
+      <li><a href="c.html#_CPPv4N14ArrowArrayView10n_childrenE">ArrowArrayView::n_children (C++ member)</a>
+</li>
+      <li><a href="c.html#_CPPv4N14ArrowArrayView12storage_typeE">ArrowArrayView::storage_type (C++ member)</a>
 </li>
       <li><a href="c.html#_CPPv430ArrowArrayViewAllocateChildrenP14ArrowArrayView7int64_t">ArrowArrayViewAllocateChildren (C++ function)</a>
 </li>
@@ -328,6 +345,12 @@
       <li><a href="c.html#_CPPv416ArrowBitCountSetPK7uint8_t7int64_t7int64_t">ArrowBitCountSet (C++ function)</a>
 </li>
       <li><a href="c.html#_CPPv411ArrowBitGetPK7uint8_t7int64_t">ArrowBitGet (C++ function)</a>
+</li>
+      <li><a href="c.html#_CPPv411ArrowBitmap">ArrowBitmap (C++ struct)</a>
+</li>
+      <li><a href="c.html#_CPPv4N11ArrowBitmap6bufferE">ArrowBitmap::buffer (C++ member)</a>
+</li>
+      <li><a href="c.html#_CPPv4N11ArrowBitmap9size_bitsE">ArrowBitmap::size_bits (C++ member)</a>
 </li>
       <li><a href="c.html#_CPPv417ArrowBitmapAppendP11ArrowBitmap7uint8_t7int64_t">ArrowBitmapAppend (C++ function)</a>
 </li>
@@ -350,6 +373,24 @@
       <li><a href="c.html#_CPPv413ArrowBitSetToP7uint8_t7int64_t7uint8_t">ArrowBitSetTo (C++ function)</a>
 </li>
       <li><a href="c.html#_CPPv414ArrowBitsSetToP7uint8_t7int64_t7int64_t7uint8_t">ArrowBitsSetTo (C++ function)</a>
+</li>
+      <li><a href="c.html#_CPPv411ArrowBuffer">ArrowBuffer (C++ struct)</a>
+</li>
+      <li><a href="c.html#_CPPv4N11ArrowBuffer9allocatorE">ArrowBuffer::allocator (C++ member)</a>
+</li>
+      <li><a href="c.html#_CPPv4N11ArrowBuffer14capacity_bytesE">ArrowBuffer::capacity_bytes (C++ member)</a>
+</li>
+      <li><a href="c.html#_CPPv4N11ArrowBuffer4dataE">ArrowBuffer::data (C++ member)</a>
+</li>
+      <li><a href="c.html#_CPPv4N11ArrowBuffer10size_bytesE">ArrowBuffer::size_bytes (C++ member)</a>
+</li>
+      <li><a href="c.html#_CPPv420ArrowBufferAllocator">ArrowBufferAllocator (C++ struct)</a>
+</li>
+      <li><a href="c.html#_CPPv4N20ArrowBufferAllocator4freeE">ArrowBufferAllocator::free (C++ member)</a>
+</li>
+      <li><a href="c.html#_CPPv4N20ArrowBufferAllocator12private_dataE">ArrowBufferAllocator::private_data (C++ member)</a>
+</li>
+      <li><a href="c.html#_CPPv4N20ArrowBufferAllocator10reallocateE">ArrowBufferAllocator::reallocate (C++ member)</a>
 </li>
       <li><a href="c.html#_CPPv427ArrowBufferAllocatorDefaultv">ArrowBufferAllocatorDefault (C++ function)</a>
 </li>
@@ -379,8 +420,6 @@
 </li>
       <li><a href="c.html#_CPPv423ArrowBufferAppendUnsafeP11ArrowBufferPKv7int64_t">ArrowBufferAppendUnsafe (C++ function)</a>
 </li>
-  </ul></td>
-  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="c.html#_CPPv422ArrowBufferDeallocatorPFvP20ArrowBufferAllocatorP7uint8_t7int64_tEPv">ArrowBufferDeallocator (C++ function)</a>
 </li>
       <li><a href="c.html#_CPPv415ArrowBufferInitP11ArrowBuffer">ArrowBufferInit (C++ function)</a>
@@ -394,6 +433,26 @@
       <li><a href="c.html#_CPPv417ArrowBufferResizeP11ArrowBuffer7int64_tc">ArrowBufferResize (C++ function)</a>
 </li>
       <li><a href="c.html#_CPPv423ArrowBufferSetAllocatorP11ArrowBuffer20ArrowBufferAllocator">ArrowBufferSetAllocator (C++ function)</a>
+</li>
+      <li><a href="c.html#_CPPv415ArrowBufferType">ArrowBufferType (C++ enum)</a>
+</li>
+      <li><a href="c.html#_CPPv4N15ArrowBufferType26NANOARROW_BUFFER_TYPE_DATAE">ArrowBufferType::NANOARROW_BUFFER_TYPE_DATA (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N15ArrowBufferType33NANOARROW_BUFFER_TYPE_DATA_OFFSETE">ArrowBufferType::NANOARROW_BUFFER_TYPE_DATA_OFFSET (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N15ArrowBufferType26NANOARROW_BUFFER_TYPE_NONEE">ArrowBufferType::NANOARROW_BUFFER_TYPE_NONE (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N15ArrowBufferType29NANOARROW_BUFFER_TYPE_TYPE_IDE">ArrowBufferType::NANOARROW_BUFFER_TYPE_TYPE_ID (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N15ArrowBufferType34NANOARROW_BUFFER_TYPE_UNION_OFFSETE">ArrowBufferType::NANOARROW_BUFFER_TYPE_UNION_OFFSET (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N15ArrowBufferType30NANOARROW_BUFFER_TYPE_VALIDITYE">ArrowBufferType::NANOARROW_BUFFER_TYPE_VALIDITY (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv415ArrowBufferView">ArrowBufferView (C++ struct)</a>
+</li>
+      <li><a href="c.html#_CPPv4N15ArrowBufferView4dataE">ArrowBufferView::data (C++ member)</a>
+</li>
+      <li><a href="c.html#_CPPv4N15ArrowBufferView7n_bytesE">ArrowBufferView::n_bytes (C++ member)</a>
 </li>
       <li><a href="c.html#_CPPv413ArrowCharViewPKc">ArrowCharView (C++ function)</a>
 </li>
@@ -401,11 +460,23 @@
 </li>
       <li><a href="c.html#_CPPv4N10ArrowError7messageE">ArrowError::message (C++ member)</a>
 </li>
+      <li><a href="c.html#_CPPv414ArrowErrorCode">ArrowErrorCode (C++ type)</a>
+</li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="c.html#_CPPv417ArrowErrorMessageP10ArrowError">ArrowErrorMessage (C++ function)</a>
 </li>
       <li><a href="c.html#_CPPv413ArrowErrorSetP10ArrowErrorPKcz">ArrowErrorSet (C++ function)</a>
 </li>
       <li><a href="c.html#_CPPv49ArrowFreePv">ArrowFree (C++ function)</a>
+</li>
+      <li><a href="c.html#_CPPv411ArrowLayout">ArrowLayout (C++ struct)</a>
+</li>
+      <li><a href="c.html#_CPPv4N11ArrowLayout11buffer_typeE">ArrowLayout::buffer_type (C++ member)</a>
+</li>
+      <li><a href="c.html#_CPPv4N11ArrowLayout19child_size_elementsE">ArrowLayout::child_size_elements (C++ member)</a>
+</li>
+      <li><a href="c.html#_CPPv4N11ArrowLayout17element_size_bitsE">ArrowLayout::element_size_bits (C++ member)</a>
 </li>
       <li><a href="c.html#_CPPv415ArrowLayoutInitP11ArrowLayout9ArrowType">ArrowLayoutInit (C++ function)</a>
 </li>
@@ -460,6 +531,8 @@
       <li><a href="c.html#_CPPv422ArrowSchemaSetMetadataP11ArrowSchemaPKc">ArrowSchemaSetMetadata (C++ function)</a>
 </li>
       <li><a href="c.html#_CPPv418ArrowSchemaSetNameP11ArrowSchemaPKc">ArrowSchemaSetName (C++ function)</a>
+</li>
+      <li><a href="c.html#_CPPv419ArrowSchemaToStringP11ArrowSchemaPc7int64_tc">ArrowSchemaToString (C++ function)</a>
 </li>
       <li><a href="c.html#_CPPv415ArrowSchemaView">ArrowSchemaView (C++ struct)</a>
 </li>
@@ -490,6 +563,12 @@
       <li><a href="c.html#_CPPv4N15ArrowSchemaView14union_type_idsE">ArrowSchemaView::union_type_ids (C++ member)</a>
 </li>
       <li><a href="c.html#_CPPv419ArrowSchemaViewInitP15ArrowSchemaViewP11ArrowSchemaP10ArrowError">ArrowSchemaViewInit (C++ function)</a>
+</li>
+      <li><a href="c.html#_CPPv415ArrowStringView">ArrowStringView (C++ struct)</a>
+</li>
+      <li><a href="c.html#_CPPv4N15ArrowStringView4dataE">ArrowStringView::data (C++ member)</a>
+</li>
+      <li><a href="c.html#_CPPv4N15ArrowStringView7n_bytesE">ArrowStringView::n_bytes (C++ member)</a>
 </li>
       <li><a href="c.html#_CPPv413ArrowTimeUnit">ArrowTimeUnit (C++ enum)</a>
 </li>
@@ -500,6 +579,102 @@
       <li><a href="c.html#_CPPv4N13ArrowTimeUnit24NANOARROW_TIME_UNIT_NANOE">ArrowTimeUnit::NANOARROW_TIME_UNIT_NANO (C++ enumerator)</a>
 </li>
       <li><a href="c.html#_CPPv4N13ArrowTimeUnit26NANOARROW_TIME_UNIT_SECONDE">ArrowTimeUnit::NANOARROW_TIME_UNIT_SECOND (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv419ArrowTimeUnitString13ArrowTimeUnit">ArrowTimeUnitString (C++ function)</a>
+</li>
+      <li><a href="c.html#_CPPv49ArrowType">ArrowType (C++ enum)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType21NANOARROW_TYPE_BINARYE">ArrowType::NANOARROW_TYPE_BINARY (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType19NANOARROW_TYPE_BOOLE">ArrowType::NANOARROW_TYPE_BOOL (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType21NANOARROW_TYPE_DATE32E">ArrowType::NANOARROW_TYPE_DATE32 (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType21NANOARROW_TYPE_DATE64E">ArrowType::NANOARROW_TYPE_DATE64 (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType25NANOARROW_TYPE_DECIMAL128E">ArrowType::NANOARROW_TYPE_DECIMAL128 (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType25NANOARROW_TYPE_DECIMAL256E">ArrowType::NANOARROW_TYPE_DECIMAL256 (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType26NANOARROW_TYPE_DENSE_UNIONE">ArrowType::NANOARROW_TYPE_DENSE_UNION (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType25NANOARROW_TYPE_DICTIONARYE">ArrowType::NANOARROW_TYPE_DICTIONARY (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType21NANOARROW_TYPE_DOUBLEE">ArrowType::NANOARROW_TYPE_DOUBLE (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType23NANOARROW_TYPE_DURATIONE">ArrowType::NANOARROW_TYPE_DURATION (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType24NANOARROW_TYPE_EXTENSIONE">ArrowType::NANOARROW_TYPE_EXTENSION (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType32NANOARROW_TYPE_FIXED_SIZE_BINARYE">ArrowType::NANOARROW_TYPE_FIXED_SIZE_BINARY (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType30NANOARROW_TYPE_FIXED_SIZE_LISTE">ArrowType::NANOARROW_TYPE_FIXED_SIZE_LIST (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType20NANOARROW_TYPE_FLOATE">ArrowType::NANOARROW_TYPE_FLOAT (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType25NANOARROW_TYPE_HALF_FLOATE">ArrowType::NANOARROW_TYPE_HALF_FLOAT (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType20NANOARROW_TYPE_INT16E">ArrowType::NANOARROW_TYPE_INT16 (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType20NANOARROW_TYPE_INT32E">ArrowType::NANOARROW_TYPE_INT32 (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType20NANOARROW_TYPE_INT64E">ArrowType::NANOARROW_TYPE_INT64 (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType19NANOARROW_TYPE_INT8E">ArrowType::NANOARROW_TYPE_INT8 (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType32NANOARROW_TYPE_INTERVAL_DAY_TIMEE">ArrowType::NANOARROW_TYPE_INTERVAL_DAY_TIME (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType38NANOARROW_TYPE_INTERVAL_MONTH_DAY_NANOE">ArrowType::NANOARROW_TYPE_INTERVAL_MONTH_DAY_NANO (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType30NANOARROW_TYPE_INTERVAL_MONTHSE">ArrowType::NANOARROW_TYPE_INTERVAL_MONTHS (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType27NANOARROW_TYPE_LARGE_BINARYE">ArrowType::NANOARROW_TYPE_LARGE_BINARY (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType25NANOARROW_TYPE_LARGE_LISTE">ArrowType::NANOARROW_TYPE_LARGE_LIST (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType27NANOARROW_TYPE_LARGE_STRINGE">ArrowType::NANOARROW_TYPE_LARGE_STRING (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType19NANOARROW_TYPE_LISTE">ArrowType::NANOARROW_TYPE_LIST (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType18NANOARROW_TYPE_MAPE">ArrowType::NANOARROW_TYPE_MAP (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType17NANOARROW_TYPE_NAE">ArrowType::NANOARROW_TYPE_NA (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType27NANOARROW_TYPE_SPARSE_UNIONE">ArrowType::NANOARROW_TYPE_SPARSE_UNION (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType21NANOARROW_TYPE_STRINGE">ArrowType::NANOARROW_TYPE_STRING (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType21NANOARROW_TYPE_STRUCTE">ArrowType::NANOARROW_TYPE_STRUCT (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType21NANOARROW_TYPE_TIME32E">ArrowType::NANOARROW_TYPE_TIME32 (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType21NANOARROW_TYPE_TIME64E">ArrowType::NANOARROW_TYPE_TIME64 (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType24NANOARROW_TYPE_TIMESTAMPE">ArrowType::NANOARROW_TYPE_TIMESTAMP (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType21NANOARROW_TYPE_UINT16E">ArrowType::NANOARROW_TYPE_UINT16 (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType21NANOARROW_TYPE_UINT32E">ArrowType::NANOARROW_TYPE_UINT32 (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType21NANOARROW_TYPE_UINT64E">ArrowType::NANOARROW_TYPE_UINT64 (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType20NANOARROW_TYPE_UINT8E">ArrowType::NANOARROW_TYPE_UINT8 (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv4N9ArrowType28NANOARROW_TYPE_UNINITIALIZEDE">ArrowType::NANOARROW_TYPE_UNINITIALIZED (C++ enumerator)</a>
+</li>
+      <li><a href="c.html#_CPPv415ArrowTypeString9ArrowType">ArrowTypeString (C++ function)</a>
+</li>
+  </ul></td>
+</tr></table>
+
+<h2 id="N">N</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="c.html#c.NANOARROW_OK">NANOARROW_OK (C macro)</a>
+</li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="c.html#c.NANOARROW_RETURN_NOT_OK">NANOARROW_RETURN_NOT_OK (C macro)</a>
 </li>
   </ul></td>
 </tr></table>
@@ -524,6 +699,11 @@
               
 <div class="toc-item">
   
+<div id="searchbox"></div>
+</div>
+
+<div class="toc-item">
+  
 </div>
 
 <div class="toc-item">
@@ -547,7 +727,7 @@
   
     
   <!-- Scripts loaded after <body> so the DOM is not blocked -->
-  <script src="_static/scripts/pydata-sphinx-theme.js?digest=9b1a4fa89bdd0e95b23b"></script>
+  <script src="_static/scripts/pydata-sphinx-theme.js?digest=1e1de1a1873e13ef5536"></script>
 
   <footer class="bd-footer"><div class="bd-footer__inner container">
   
@@ -564,7 +744,7 @@
   <div class="footer-item">
     
 <p class="sphinx-version">
-Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.2.2.<br>
+Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.2.3.<br>
 </p>
 
   </div>
diff --git a/dev/index.html b/dev/index.html
index 84fb219..db50857 100644
--- a/dev/index.html
+++ b/dev/index.html
@@ -13,8 +13,8 @@
   </script>
   
   <!-- Loaded before other Sphinx assets -->
-  <link href="_static/styles/theme.css?digest=9b1a4fa89bdd0e95b23b" rel="stylesheet">
-<link href="_static/styles/pydata-sphinx-theme.css?digest=9b1a4fa89bdd0e95b23b" rel="stylesheet">
+  <link href="_static/styles/theme.css?digest=1e1de1a1873e13ef5536" rel="stylesheet">
+<link href="_static/styles/pydata-sphinx-theme.css?digest=1e1de1a1873e13ef5536" rel="stylesheet">
 
   
   <link rel="stylesheet"
@@ -23,11 +23,13 @@
     href="_static/vendor/fontawesome/6.1.2/webfonts/fa-solid-900.woff2">
   <link rel="preload" as="font" type="font/woff2" crossorigin
     href="_static/vendor/fontawesome/6.1.2/webfonts/fa-brands-400.woff2">
+  <link rel="preload" as="font" type="font/woff2" crossorigin
+    href="_static/vendor/fontawesome/6.1.2/webfonts/fa-regular-400.woff2">
 
     <link rel="stylesheet" type="text/css" href="_static/pygments.css" />
   
   <!-- Pre-loaded scripts that we'll load fully later -->
-  <link rel="preload" as="script" href="_static/scripts/pydata-sphinx-theme.js?digest=9b1a4fa89bdd0e95b23b">
+  <link rel="preload" as="script" href="_static/scripts/pydata-sphinx-theme.js?digest=1e1de1a1873e13ef5536">
 
     <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
     <script src="_static/jquery.js"></script>
@@ -38,7 +40,7 @@
     <script>DOCUMENTATION_OPTIONS.pagename = 'index';</script>
     <link rel="index" title="Index" href="genindex.html" />
     <link rel="search" title="Search" href="search.html" />
-    <link rel="next" title="C API" href="c.html" />
+    <link rel="next" title="C API Reference" href="c.html" />
   <meta name="viewport" content="width=device-width, initial-scale=1" />
   <meta name="docsearch:language" content="en">
   </head>
@@ -60,7 +62,7 @@
     <div class="search-button__search-container">
       
 <form class="bd-search d-flex align-items-center" action="search.html" method="get">
-  <i class="icon fas fa-search"></i>
+  <i class="fa-solid fa-magnifying-glass"></i>
   <input type="search" class="form-control" name="q" id="search-input" placeholder="Search the docs ..." aria-label="Search the docs ..." autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false">
   <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd>K</kbd></span>
 </form>
@@ -70,7 +72,7 @@
   
   <nav class="bd-header navbar navbar-expand-lg bd-navbar" id="navbar-main"><div class="bd-header__inner bd-page-width">
   <label class="sidebar-toggle primary-toggle" for="__primary">
-      <span class="fas fa-bars"></span>
+      <span class="fa-solid fa-bars"></span>
   </label>
   <div id="navbar-start">
     
@@ -109,13 +111,13 @@
         
                 <li class="nav-item">
                     <a class="nav-link" href="c.html">
-                        C API
+                        C API Reference
                     </a>
                 </li>
                 
 
             <li class="nav-item">
-                <a class="nav-link nav-external" href="r/index.html">R API<i class="fas fa-external-link-alt"></i></a>
+                <a class="nav-link nav-external" href="r/index.html">R Package<i class="fa-solid fa-up-right-from-square"></i></a>
             </li>
     </ul>
 </nav>
@@ -126,16 +128,16 @@
     <div id="navbar-end">
       <div class="navbar-end-item navbar-end__search-button-container">
         
-<button class="btn btn-sm navbar-btn search-button search-button__button" title="Search">
-  <i class="fas fa-search"></i>
+<button class="btn btn-sm navbar-btn search-button search-button__button" title="Search" data-toggle="tooltip">
+  <i class="fa-solid fa-magnifying-glass"></i>
 </button>
       </div>
       
       <div class="navbar-end-item">
-        <span class="theme-switch-button btn btn-sm btn-outline-primary navbar-btn rounded-circle">
-    <a class="theme-switch" data-mode="light"><i class="fas fa-sun"></i></a>
-    <a class="theme-switch" data-mode="dark"><i class="far fa-moon"></i></a>
-    <a class="theme-switch" data-mode="auto"><i class="fas fa-adjust"></i></a>
+        <span class="theme-switch-button btn btn-sm btn-outline-primary navbar-btn rounded-circle" title="light/dark" data-toggle="tooltip">
+    <a class="theme-switch" data-mode="light"><i class="fa-solid fa-sun"></i></a>
+    <a class="theme-switch" data-mode="dark"><i class="fa-regular fa-moon"></i></a>
+    <a class="theme-switch" data-mode="auto"><i class="fa-solid fa-circle-half-stroke"></i></a>
 </span>
       </div>
       
@@ -150,14 +152,14 @@
 
   
   <div class="search-button-container--mobile">
-<button class="btn btn-sm navbar-btn search-button search-button__button" title="Search">
-  <i class="fas fa-search"></i>
+<button class="btn btn-sm navbar-btn search-button search-button__button" title="Search" data-toggle="tooltip">
+  <i class="fa-solid fa-magnifying-glass"></i>
 </button>
   </div>
 
   
   <label class="sidebar-toggle secondary-toggle" for="__secondary">
-      <span class="fas fa-outdent"></span>
+      <span class="fa-solid fa-outdent"></span>
   </label>
   
 
@@ -185,13 +187,13 @@
         
                 <li class="nav-item">
                     <a class="nav-link" href="c.html">
-                        C API
+                        C API Reference
                     </a>
                 </li>
                 
 
             <li class="nav-item">
-                <a class="nav-link nav-external" href="r/index.html">R API<i class="fas fa-external-link-alt"></i></a>
+                <a class="nav-link nav-external" href="r/index.html">R Package<i class="fa-solid fa-up-right-from-square"></i></a>
             </li>
     </ul>
 </nav>
@@ -205,10 +207,10 @@
     <div class="sidebar-header-items__end">
       
       <div class="navbar-end-item">
-        <span class="theme-switch-button btn btn-sm btn-outline-primary navbar-btn rounded-circle">
-    <a class="theme-switch" data-mode="light"><i class="fas fa-sun"></i></a>
-    <a class="theme-switch" data-mode="dark"><i class="far fa-moon"></i></a>
-    <a class="theme-switch" data-mode="auto"><i class="fas fa-adjust"></i></a>
+        <span class="theme-switch-button btn btn-sm btn-outline-primary navbar-btn rounded-circle" title="light/dark" data-toggle="tooltip">
+    <a class="theme-switch" data-mode="light"><i class="fa-solid fa-sun"></i></a>
+    <a class="theme-switch" data-mode="dark"><i class="fa-regular fa-moon"></i></a>
+    <a class="theme-switch" data-mode="auto"><i class="fa-solid fa-circle-half-stroke"></i></a>
 </span>
       </div>
       
@@ -225,7 +227,7 @@
   <div class="sidebar-start-items sidebar-primary__section">
     <div class="sidebar-start-items__item">
 <form class="bd-search d-flex align-items-center" action="search.html" method="get">
-  <i class="icon fas fa-search"></i>
+  <i class="fa-solid fa-magnifying-glass"></i>
   <input type="search" class="form-control" name="q" id="search-input" placeholder="Search the docs ..." aria-label="Search the docs ..." autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false">
   <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd>K</kbd></span>
 </form>
@@ -253,21 +255,118 @@
             
             <article class="bd-article" role="main">
               
-  <section id="nanoarrow">
+  <!---
+  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.
+--><section id="nanoarrow">
 <h1>nanoarrow<a class="headerlink" href="#nanoarrow" title="Permalink to this heading">#</a></h1>
-<p>The nanoarrow library is a C library providing helpers to generate and
-interpret <a class="reference external" href="https://arrow.apache.org/docs/format/CDataInterface.html">Arrow C Data interface</a>
-and <a class="reference external" href="https://arrow.apache.org/docs/format/CStreamInterface.html">Arrow C Array Stream interface</a>
-structures to facilitate producing and consuming data using <a class="reference external" href="https://arrow.apache.org">Apache Arrow</a>.</p>
+<p><a class="reference external" href="https://app.codecov.io/gh/apache/arrow-nanoarrow?branch=main"><img alt="Codecov test coverage" src="https://codecov.io/gh/apache/arrow-nanoarrow/branch/main/graph/badge.svg" /></a> <a class="reference external" href="https://apache.github.io/arrow-nanoarrow/dev"><img alt="Documentation" src="https://img.shields.io/badge/Documentation-dev-yellow" /></a> <a class="reference external" href="https://github.com/apache/arrow-nanoarrow"><img alt="nanoarrow [...]
+<p>The nanoarrow library is a set of helper functions to interpret and
+generate <a class="reference external" href="https://arrow.apache.org/docs/format/CDataInterface.html">Arrow C Data
+Interface</a>
+and <a class="reference external" href="https://arrow.apache.org/docs/format/CStreamInterface.html">Arrow C Stream
+Interface</a>
+structures. The library is in active early development and users should
+update regularly from the main branch of this repository.</p>
+<p>Whereas the current suite of Arrow implementations provide the basis for
+a comprehensive data analysis toolkit, this library is intended to
+support clients that wish to produce or interpret Arrow C Data and/or
+Arrow C Stream structures where linking to a higher level Arrow binding
+is difficult or impossible.</p>
+<section id="using-the-c-library">
+<h2>Using the C library<a class="headerlink" href="#using-the-c-library" title="Permalink to this heading">#</a></h2>
+<p>The nanoarrow C library is intended to be copied and vendored. This can
+be done using CMake or by using the bundled nanoarrow.h/nanorrow.c
+distribution available in the dist/ directory in this repository.
+Examples of both can be found in the examples/ directory in this
+repository.</p>
+<p>A simple producer example:</p>
+<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;nanoarrow.h&quot;</span><span class="cp"></span>
+
+<span class="kt">int</span><span class="w"> </span><span class="nf">make_simple_array</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">ArrowArray</span><span class="o">*</span><span class="w"> </span><span class="n">array_out</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">ArrowSchema</span><span class="o">*</span><span class="w"> </span><span class="n">schema_ou [...]
+<span class="w">  </span><span class="k">struct</span><span class="w"> </span><span class="nc">ArrowError</span><span class="w"> </span><span class="n">error</span><span class="p">;</span><span class="w"></span>
+<span class="w">  </span><span class="n">array_out</span><span class="o">-&gt;</span><span class="n">release</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span><span class="w"></span>
+<span class="w">  </span><span class="n">schema_out</span><span class="o">-&gt;</span><span class="n">release</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="nb">NULL</span><span class="p">;</span><span class="w"></span>
+
+<span class="w">  </span><span class="n">NANOARROW_RETURN_NOT_OK</span><span class="p">(</span><span class="n">ArrowArrayInit</span><span class="p">(</span><span class="n">array_out</span><span class="p">,</span><span class="w"> </span><span class="n">NANOARROW_TYPE_INT32</span><span class="p">));</span><span class="w"></span>
+
+<span class="w">  </span><span class="n">NANOARROW_RETURN_NOT_OK</span><span class="p">(</span><span class="n">ArrowArrayStartAppending</span><span class="p">(</span><span class="n">array_out</span><span class="p">));</span><span class="w"></span>
+<span class="w">  </span><span class="n">NANOARROW_RETURN_NOT_OK</span><span class="p">(</span><span class="n">ArrowArrayAppendInt</span><span class="p">(</span><span class="n">array_out</span><span class="p">,</span><span class="w"> </span><span class="mi">1</span><span class="p">));</span><span class="w"></span>
+<span class="w">  </span><span class="n">NANOARROW_RETURN_NOT_OK</span><span class="p">(</span><span class="n">ArrowArrayAppendInt</span><span class="p">(</span><span class="n">array_out</span><span class="p">,</span><span class="w"> </span><span class="mi">2</span><span class="p">));</span><span class="w"></span>
+<span class="w">  </span><span class="n">NANOARROW_RETURN_NOT_OK</span><span class="p">(</span><span class="n">ArrowArrayAppendInt</span><span class="p">(</span><span class="n">array_out</span><span class="p">,</span><span class="w"> </span><span class="mi">3</span><span class="p">));</span><span class="w"></span>
+<span class="w">  </span><span class="n">NANOARROW_RETURN_NOT_OK</span><span class="p">(</span><span class="n">ArrowArrayFinishBuilding</span><span class="p">(</span><span class="n">array_out</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">error</span><span class="p">));</span><span class="w"></span>
+
+<span class="w">  </span><span class="n">NANOARROW_RETURN_NOT_OK</span><span class="p">(</span><span class="n">ArrowSchemaInit</span><span class="p">(</span><span class="n">schema_out</span><span class="p">,</span><span class="w"> </span><span class="n">NANOARROW_TYPE_INT32</span><span class="p">));</span><span class="w"></span>
+
+<span class="w">  </span><span class="k">return</span><span class="w"> </span><span class="n">NANOARROW_OK</span><span class="p">;</span><span class="w"></span>
+<span class="p">}</span><span class="w"></span>
+</pre></div>
+</div>
+<p>A simple consumer example:</p>
+<div class="highlight-c notranslate"><div class="highlight"><pre><span></span><span class="cp">#include</span><span class="w"> </span><span class="cpf">&lt;stdio.h&gt;</span><span class="cp"></span>
+
+<span class="cp">#include</span><span class="w"> </span><span class="cpf">&quot;nanoarrow.h&quot;</span><span class="cp"></span>
+
+<span class="kt">int</span><span class="w"> </span><span class="nf">print_simple_array</span><span class="p">(</span><span class="k">struct</span><span class="w"> </span><span class="nc">ArrowArray</span><span class="o">*</span><span class="w"> </span><span class="n">array</span><span class="p">,</span><span class="w"> </span><span class="k">struct</span><span class="w"> </span><span class="nc">ArrowSchema</span><span class="o">*</span><span class="w"> </span><span class="n">schema</span [...]
+<span class="w">  </span><span class="k">struct</span><span class="w"> </span><span class="nc">ArrowError</span><span class="w"> </span><span class="n">error</span><span class="p">;</span><span class="w"></span>
+<span class="w">  </span><span class="k">struct</span><span class="w"> </span><span class="nc">ArrowArrayView</span><span class="w"> </span><span class="n">array_view</span><span class="p">;</span><span class="w"></span>
+<span class="w">  </span><span class="n">NANOARROW_RETURN_NOT_OK</span><span class="p">(</span><span class="n">ArrowArrayViewInitFromSchema</span><span class="p">(</span><span class="o">&amp;</span><span class="n">array_view</span><span class="p">,</span><span class="w"> </span><span class="n">schema</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">error</span><span class="p">));</span><span class="w"></span>
+
+<span class="w">  </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">array_view</span><span class="p">.</span><span class="n">storage_type</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="n">NANOARROW_TYPE_INT32</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
+<span class="w">    </span><span class="n">printf</span><span class="p">(</span><span class="s">&quot;Array has storage that is not int32</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">);</span><span class="w"></span>
+<span class="w">  </span><span class="p">}</span><span class="w"></span>
+
+<span class="w">  </span><span class="kt">int</span><span class="w"> </span><span class="n">result</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="n">ArrowArrayViewSetArray</span><span class="p">(</span><span class="o">&amp;</span><span class="n">array_view</span><span class="p">,</span><span class="w"> </span><span class="n">array</span><span class="p">,</span><span class="w"> </span><span class="o">&amp;</span><span class="n">error</span><span [...]
+<span class="w">  </span><span class="k">if</span><span class="w"> </span><span class="p">(</span><span class="n">result</span><span class="w"> </span><span class="o">!=</span><span class="w"> </span><span class="n">NANOARROW_OK</span><span class="p">)</span><span class="w"> </span><span class="p">{</span><span class="w"></span>
+<span class="w">    </span><span class="n">ArrowArrayViewReset</span><span class="p">(</span><span class="o">&amp;</span><span class="n">array_view</span><span class="p">);</span><span class="w"></span>
+<span class="w">    </span><span class="k">return</span><span class="w"> </span><span class="n">result</span><span class="p">;</span><span class="w"></span>
+<span class="w">  </span><span class="p">}</span><span class="w"></span>
+
+<span class="w">  </span><span class="k">for</span><span class="w"> </span><span class="p">(</span><span class="kt">int64_t</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">=</span><span class="w"> </span><span class="mi">0</span><span class="p">;</span><span class="w"> </span><span class="n">i</span><span class="w"> </span><span class="o">&lt;</span><span class="w"> </span><span class="n">array</span><span class="o">-&gt;</span><span class="n [...]
+<span class="w">    </span><span class="n">printf</span><span class="p">(</span><span class="s">&quot;%d</span><span class="se">\n</span><span class="s">&quot;</span><span class="p">,</span><span class="w"> </span><span class="p">(</span><span class="kt">int</span><span class="p">)</span><span class="n">ArrowArrayViewGetIntUnsafe</span><span class="p">(</span><span class="o">&amp;</span><span class="n">array_view</span><span class="p">,</span><span class="w"> </span><span class="n">i</sp [...]
+<span class="w">  </span><span class="p">}</span><span class="w"></span>
+
+<span class="w">  </span><span class="n">ArrowArrayViewReset</span><span class="p">(</span><span class="o">&amp;</span><span class="n">array_view</span><span class="p">);</span><span class="w"></span>
+<span class="w">  </span><span class="k">return</span><span class="w"> </span><span class="n">NANOARROW_OK</span><span class="p">;</span><span class="w"></span>
+<span class="p">}</span><span class="w"></span>
+</pre></div>
+</div>
+</section>
+<section id="contents">
+<h2>Contents<a class="headerlink" href="#contents" title="Permalink to this heading">#</a></h2>
 <div class="toctree-wrapper compound">
-<p aria-level="2" class="caption" role="heading"><span class="caption-text">Contents:</span></p>
 <ul>
-<li class="toctree-l1"><a class="reference internal" href="c.html">C API</a><ul>
-<li class="toctree-l2"><a class="reference internal" href="c.html#nanoarrow-h">nanoarrow.h</a></li>
+<li class="toctree-l1"><a class="reference internal" href="c.html">C API Reference</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="c.html#creating-schemas">Creating schemas</a></li>
+<li class="toctree-l2"><a class="reference internal" href="c.html#reading-schemas">Reading schemas</a></li>
+<li class="toctree-l2"><a class="reference internal" href="c.html#creating-arrays">Creating arrays</a></li>
+<li class="toctree-l2"><a class="reference internal" href="c.html#reading-arrays">Reading arrays</a></li>
+<li class="toctree-l2"><a class="reference internal" href="c.html#owning-growable-buffers">Owning, growable buffers</a></li>
+<li class="toctree-l2"><a class="reference internal" href="c.html#bitmap-utilities">Bitmap utilities</a></li>
+<li class="toctree-l2"><a class="reference internal" href="c.html#create-read-and-modify-schema-metadata">Create, read, and modify schema metadata</a></li>
+<li class="toctree-l2"><a class="reference internal" href="c.html#memory-management">Memory management</a></li>
+<li class="toctree-l2"><a class="reference internal" href="c.html#error-handling">Error handling</a></li>
+<li class="toctree-l2"><a class="reference internal" href="c.html#utility-data-structures">Utility data structures</a></li>
+<li class="toctree-l2"><a class="reference internal" href="c.html#arrow-c-data-interface">Arrow C Data Interface</a></li>
 </ul>
 </li>
 </ul>
 </div>
+</section>
 </section>
 
 
@@ -281,9 +380,9 @@ structures to facilitate producing and consuming data using <a class="reference
   <a class='right-next' id="next-link" href="c.html" title="next page">
   <div class="prev-next-info">
       <p class="prev-next-subtitle">next</p>
-      <p class="prev-next-title">C API</p>
+      <p class="prev-next-title">C API Reference</p>
   </div>
-  <i class="fas fa-angle-right"></i>
+  <i class="fa-solid fa-angle-right"></i>
   </a>
 </div>
             </footer>
@@ -296,10 +395,37 @@ structures to facilitate producing and consuming data using <a class="reference
               
 <div class="toc-item">
   
+<div class="tocsection onthispage">
+    <i class="fa-solid fa-list"></i> On this page
+</div>
+<nav id="bd-toc-nav" class="page-toc">
+    <ul class="visible nav section-nav flex-column">
+ <li class="toc-h2 nav-item toc-entry">
+  <a class="reference internal nav-link" href="#using-the-c-library">
+   Using the C library
+  </a>
+ </li>
+ <li class="toc-h2 nav-item toc-entry">
+  <a class="reference internal nav-link" href="#contents">
+   Contents
+  </a>
+ </li>
+</ul>
+
+</nav>
+</div>
+
+<div class="toc-item">
+  
+<div id="searchbox"></div>
+</div>
+
+<div class="toc-item">
+  
 
 <div class="tocsection editthispage">
     <a href="https://github.com/apache/arrow-nanoarrow/edit/main/docs/source/index.rst">
-        <i class="fas fa-pencil-alt"></i> Edit this page
+        <i class="fa-solid fa-pencil"></i> Edit this page
     </a>
 </div>
 
@@ -309,7 +435,7 @@ structures to facilitate producing and consuming data using <a class="reference
   
 <div class="tocsection sourcelink">
     <a href="_sources/index.rst.txt">
-        <i class="fas fa-file-alt"></i> Show Source
+        <i class="fa-solid fa-file-lines"></i> Show Source
     </a>
 </div>
 
@@ -332,7 +458,7 @@ structures to facilitate producing and consuming data using <a class="reference
   
     
   <!-- Scripts loaded after <body> so the DOM is not blocked -->
-  <script src="_static/scripts/pydata-sphinx-theme.js?digest=9b1a4fa89bdd0e95b23b"></script>
+  <script src="_static/scripts/pydata-sphinx-theme.js?digest=1e1de1a1873e13ef5536"></script>
 
   <footer class="bd-footer"><div class="bd-footer__inner container">
   
@@ -349,7 +475,7 @@ structures to facilitate producing and consuming data using <a class="reference
   <div class="footer-item">
     
 <p class="sphinx-version">
-Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.2.2.<br>
+Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.2.3.<br>
 </p>
 
   </div>
diff --git a/dev/objects.inv b/dev/objects.inv
index 469750b..9a6cd8f 100644
Binary files a/dev/objects.inv and b/dev/objects.inv differ
diff --git a/dev/r/index.html b/dev/r/index.html
index ce21119..fb9e828 100644
--- a/dev/r/index.html
+++ b/dev/r/index.html
@@ -92,7 +92,7 @@
 <p>Use <code><a href="reference/as_nanoarrow_schema.html">infer_nanoarrow_schema()</a></code> to get the ArrowSchema object that corresponds to a given R vector type; use <code><a href="reference/as_nanoarrow_schema.html">as_nanoarrow_schema()</a></code> to convert an object from some other data type representation (e.g., an arrow R package <code>DataType</code> like <code><a href="https://arrow.apache.org/docs/r/reference/data-type.html" class="external-link">arrow::int32()</a></code>).</p>
 <div class="sourceCode" id="cb3"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="fu"><a href="reference/as_nanoarrow_schema.html">infer_nanoarrow_schema</a></span><span class="op">(</span><span class="fl">1</span><span class="op">:</span><span class="fl">5</span><span class="op">)</span></span>
-<span><span class="co">#&gt; &lt;nanoarrow_schema[i]&gt;</span></span>
+<span><span class="co">#&gt; &lt;nanoarrow_schema int32&gt;</span></span>
 <span><span class="co">#&gt;  $ format    : chr "i"</span></span>
 <span><span class="co">#&gt;  $ name      : chr ""</span></span>
 <span><span class="co">#&gt;  $ metadata  : list()</span></span>
@@ -100,13 +100,13 @@
 <span><span class="co">#&gt;  $ children  : NULL</span></span>
 <span><span class="co">#&gt;  $ dictionary: NULL</span></span>
 <span><span class="fu"><a href="reference/as_nanoarrow_schema.html">as_nanoarrow_schema</a></span><span class="op">(</span><span class="fu">arrow</span><span class="fu">::</span><span class="fu"><a href="https://arrow.apache.org/docs/r/reference/Schema.html" class="external-link">schema</a></span><span class="op">(</span>col1 <span class="op">=</span> <span class="fu">arrow</span><span class="fu">::</span><span class="fu"><a href="https://arrow.apache.org/docs/r/reference/data-type.html" [...]
-<span><span class="co">#&gt; &lt;nanoarrow_schema[+s]&gt;</span></span>
+<span><span class="co">#&gt; &lt;nanoarrow_schema struct&gt;</span></span>
 <span><span class="co">#&gt;  $ format    : chr "+s"</span></span>
 <span><span class="co">#&gt;  $ name      : chr ""</span></span>
 <span><span class="co">#&gt;  $ metadata  : list()</span></span>
 <span><span class="co">#&gt;  $ flags     : int 0</span></span>
 <span><span class="co">#&gt;  $ children  :List of 1</span></span>
-<span><span class="co">#&gt;   ..$ col1:&lt;nanoarrow_schema[g]&gt;</span></span>
+<span><span class="co">#&gt;   ..$ col1:&lt;nanoarrow_schema double&gt;</span></span>
 <span><span class="co">#&gt;   .. ..$ format    : chr "g"</span></span>
 <span><span class="co">#&gt;   .. ..$ name      : chr "col1"</span></span>
 <span><span class="co">#&gt;   .. ..$ metadata  : list()</span></span>
@@ -121,30 +121,30 @@
 <p>Use <code><a href="reference/as_nanoarrow_array.html">as_nanoarrow_array()</a></code> to convert an object to an ArrowArray object:</p>
 <div class="sourceCode" id="cb4"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="fu"><a href="reference/as_nanoarrow_array.html">as_nanoarrow_array</a></span><span class="op">(</span><span class="fl">1</span><span class="op">:</span><span class="fl">5</span><span class="op">)</span></span>
-<span><span class="co">#&gt; &lt;nanoarrow_array i[5]&gt;</span></span>
+<span><span class="co">#&gt; &lt;nanoarrow_array int32[5]&gt;</span></span>
 <span><span class="co">#&gt;  $ length    : int 5</span></span>
 <span><span class="co">#&gt;  $ null_count: int 0</span></span>
 <span><span class="co">#&gt;  $ offset    : int 0</span></span>
 <span><span class="co">#&gt;  $ buffers   :List of 2</span></span>
 <span><span class="co">#&gt;   ..$ :&lt;nanoarrow_buffer_validity[0 b] at 0x0&gt;</span></span>
-<span><span class="co">#&gt;   ..$ :&lt;nanoarrow_buffer_data_int32[20 b] at 0x1397d7758&gt;</span></span>
+<span><span class="co">#&gt;   ..$ :&lt;nanoarrow_buffer_data_int32[20 b] at 0x135d13c28&gt;</span></span>
 <span><span class="co">#&gt;  $ dictionary: NULL</span></span>
 <span><span class="co">#&gt;  $ children  : list()</span></span>
 <span><span class="fu"><a href="reference/as_nanoarrow_array.html">as_nanoarrow_array</a></span><span class="op">(</span><span class="fu">arrow</span><span class="fu">::</span><span class="fu"><a href="https://arrow.apache.org/docs/r/reference/RecordBatch.html" class="external-link">record_batch</a></span><span class="op">(</span>col1 <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/c.html" class="external-link">c</a></span><span class="op">(</span><span class=" [...]
-<span><span class="co">#&gt; &lt;nanoarrow_array +s[2]&gt;</span></span>
+<span><span class="co">#&gt; &lt;nanoarrow_array struct[2]&gt;</span></span>
 <span><span class="co">#&gt;  $ length    : int 2</span></span>
 <span><span class="co">#&gt;  $ null_count: int 0</span></span>
 <span><span class="co">#&gt;  $ offset    : int 0</span></span>
 <span><span class="co">#&gt;  $ buffers   :List of 1</span></span>
 <span><span class="co">#&gt;   ..$ :&lt;nanoarrow_buffer_validity[0 b] at 0x0&gt;</span></span>
 <span><span class="co">#&gt;  $ children  :List of 1</span></span>
-<span><span class="co">#&gt;   ..$ col1:&lt;nanoarrow_array g[2]&gt;</span></span>
+<span><span class="co">#&gt;   ..$ col1:&lt;nanoarrow_array double[2]&gt;</span></span>
 <span><span class="co">#&gt;   .. ..$ length    : int 2</span></span>
 <span><span class="co">#&gt;   .. ..$ null_count: int 0</span></span>
 <span><span class="co">#&gt;   .. ..$ offset    : int 0</span></span>
 <span><span class="co">#&gt;   .. ..$ buffers   :List of 2</span></span>
 <span><span class="co">#&gt;   .. .. ..$ :&lt;nanoarrow_buffer_validity[0 b] at 0x0&gt;</span></span>
-<span><span class="co">#&gt;   .. .. ..$ :&lt;nanoarrow_buffer_data_double[16 b] at 0x118a4b2b8&gt;</span></span>
+<span><span class="co">#&gt;   .. .. ..$ :&lt;nanoarrow_buffer_data_double[16 b] at 0x13604f0b8&gt;</span></span>
 <span><span class="co">#&gt;   .. ..$ dictionary: NULL</span></span>
 <span><span class="co">#&gt;   .. ..$ children  : list()</span></span>
 <span><span class="co">#&gt;  $ dictionary: NULL</span></span></code></pre></div>
@@ -158,13 +158,13 @@
 <p>Even though at the C level the ArrowArray is distinct from the ArrowSchema, at the R level we attach a schema wherever possible. You can access the attached schema using <code><a href="reference/as_nanoarrow_schema.html">infer_nanoarrow_schema()</a></code>:</p>
 <div class="sourceCode" id="cb6"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="fu"><a href="reference/as_nanoarrow_schema.html">infer_nanoarrow_schema</a></span><span class="op">(</span><span class="va">array</span><span class="op">)</span></span>
-<span><span class="co">#&gt; &lt;nanoarrow_schema[+s]&gt;</span></span>
+<span><span class="co">#&gt; &lt;nanoarrow_schema struct&gt;</span></span>
 <span><span class="co">#&gt;  $ format    : chr "+s"</span></span>
 <span><span class="co">#&gt;  $ name      : chr ""</span></span>
 <span><span class="co">#&gt;  $ metadata  : list()</span></span>
 <span><span class="co">#&gt;  $ flags     : int 0</span></span>
 <span><span class="co">#&gt;  $ children  :List of 1</span></span>
-<span><span class="co">#&gt;   ..$ col1:&lt;nanoarrow_schema[g]&gt;</span></span>
+<span><span class="co">#&gt;   ..$ col1:&lt;nanoarrow_schema double&gt;</span></span>
 <span><span class="co">#&gt;   .. ..$ format    : chr "g"</span></span>
 <span><span class="co">#&gt;   .. ..$ name      : chr "col1"</span></span>
 <span><span class="co">#&gt;   .. ..$ metadata  : list()</span></span>
@@ -184,45 +184,45 @@
 <span><span class="op">)</span></span>
 <span></span>
 <span><span class="op">(</span><span class="va">stream</span> <span class="op">&lt;-</span> <span class="fu"><a href="reference/as_nanoarrow_array_stream.html">as_nanoarrow_array_stream</a></span><span class="op">(</span><span class="va">reader</span><span class="op">)</span><span class="op">)</span></span>
-<span><span class="co">#&gt; &lt;nanoarrow_array_stream[+s]&gt;</span></span>
+<span><span class="co">#&gt; &lt;nanoarrow_array_stream struct&lt;col1: double&gt;&gt;</span></span>
 <span><span class="co">#&gt;  $ get_schema:function ()  </span></span>
 <span><span class="co">#&gt;  $ get_next  :function (schema = x$get_schema(), validate = TRUE)  </span></span>
 <span><span class="co">#&gt;  $ release   :function ()</span></span></code></pre></div>
 <p>You can pull batches from the stream using the <code>$get_next()</code> method. The last batch will return <code>NULL</code>.</p>
 <div class="sourceCode" id="cb8"><pre class="downlit sourceCode r">
 <code class="sourceCode R"><span><span class="va">stream</span><span class="op">$</span><span class="fu">get_next</span><span class="op">(</span><span class="op">)</span></span>
-<span><span class="co">#&gt; &lt;nanoarrow_array +s[2]&gt;</span></span>
+<span><span class="co">#&gt; &lt;nanoarrow_array struct[2]&gt;</span></span>
 <span><span class="co">#&gt;  $ length    : int 2</span></span>
 <span><span class="co">#&gt;  $ null_count: int 0</span></span>
 <span><span class="co">#&gt;  $ offset    : int 0</span></span>
 <span><span class="co">#&gt;  $ buffers   :List of 1</span></span>
 <span><span class="co">#&gt;   ..$ :&lt;nanoarrow_buffer_validity[0 b] at 0x0&gt;</span></span>
 <span><span class="co">#&gt;  $ children  :List of 1</span></span>
-<span><span class="co">#&gt;   ..$ col1:&lt;nanoarrow_array g[2]&gt;</span></span>
+<span><span class="co">#&gt;   ..$ col1:&lt;nanoarrow_array double[2]&gt;</span></span>
 <span><span class="co">#&gt;   .. ..$ length    : int 2</span></span>
 <span><span class="co">#&gt;   .. ..$ null_count: int 0</span></span>
 <span><span class="co">#&gt;   .. ..$ offset    : int 0</span></span>
 <span><span class="co">#&gt;   .. ..$ buffers   :List of 2</span></span>
 <span><span class="co">#&gt;   .. .. ..$ :&lt;nanoarrow_buffer_validity[0 b] at 0x0&gt;</span></span>
-<span><span class="co">#&gt;   .. .. ..$ :&lt;nanoarrow_buffer_data_double[16 b] at 0x1195924b8&gt;</span></span>
+<span><span class="co">#&gt;   .. .. ..$ :&lt;nanoarrow_buffer_data_double[16 b] at 0x136de3538&gt;</span></span>
 <span><span class="co">#&gt;   .. ..$ dictionary: NULL</span></span>
 <span><span class="co">#&gt;   .. ..$ children  : list()</span></span>
 <span><span class="co">#&gt;  $ dictionary: NULL</span></span>
 <span><span class="va">stream</span><span class="op">$</span><span class="fu">get_next</span><span class="op">(</span><span class="op">)</span></span>
-<span><span class="co">#&gt; &lt;nanoarrow_array +s[2]&gt;</span></span>
+<span><span class="co">#&gt; &lt;nanoarrow_array struct[2]&gt;</span></span>
 <span><span class="co">#&gt;  $ length    : int 2</span></span>
 <span><span class="co">#&gt;  $ null_count: int 0</span></span>
 <span><span class="co">#&gt;  $ offset    : int 0</span></span>
 <span><span class="co">#&gt;  $ buffers   :List of 1</span></span>
 <span><span class="co">#&gt;   ..$ :&lt;nanoarrow_buffer_validity[0 b] at 0x0&gt;</span></span>
 <span><span class="co">#&gt;  $ children  :List of 1</span></span>
-<span><span class="co">#&gt;   ..$ col1:&lt;nanoarrow_array g[2]&gt;</span></span>
+<span><span class="co">#&gt;   ..$ col1:&lt;nanoarrow_array double[2]&gt;</span></span>
 <span><span class="co">#&gt;   .. ..$ length    : int 2</span></span>
 <span><span class="co">#&gt;   .. ..$ null_count: int 0</span></span>
 <span><span class="co">#&gt;   .. ..$ offset    : int 0</span></span>
 <span><span class="co">#&gt;   .. ..$ buffers   :List of 2</span></span>
 <span><span class="co">#&gt;   .. .. ..$ :&lt;nanoarrow_buffer_validity[0 b] at 0x0&gt;</span></span>
-<span><span class="co">#&gt;   .. .. ..$ :&lt;nanoarrow_buffer_data_double[16 b] at 0x1195920f8&gt;</span></span>
+<span><span class="co">#&gt;   .. .. ..$ :&lt;nanoarrow_buffer_data_double[16 b] at 0x136de3178&gt;</span></span>
 <span><span class="co">#&gt;   .. ..$ dictionary: NULL</span></span>
 <span><span class="co">#&gt;   .. ..$ children  : list()</span></span>
 <span><span class="co">#&gt;  $ dictionary: NULL</span></span>
diff --git a/dev/r/pkgdown.yml b/dev/r/pkgdown.yml
index 231676a..93fb7e5 100644
--- a/dev/r/pkgdown.yml
+++ b/dev/r/pkgdown.yml
@@ -2,5 +2,5 @@ pandoc: 2.14.2
 pkgdown: 2.0.6
 pkgdown_sha: ~
 articles: {}
-last_built: 2022-09-29T19:18Z
+last_built: 2022-10-07T18:52Z
 
diff --git a/dev/r/reference/as_nanoarrow_array.html b/dev/r/reference/as_nanoarrow_array.html
index 2e163f6..2dcee6f 100644
--- a/dev/r/reference/as_nanoarrow_array.html
+++ b/dev/r/reference/as_nanoarrow_array.html
@@ -91,33 +91,33 @@ type. Defaults to <code><a href="as_nanoarrow_schema.html">infer_nanoarrow_schem
     <div class="section level2">
     <h2 id="ref-examples">Examples<a class="anchor" aria-label="anchor" href="#ref-examples"></a></h2>
     <div class="sourceCode"><pre class="sourceCode r"><code><span class="r-in"><span><span class="op">(</span><span class="va">array</span> <span class="op">&lt;-</span> <span class="fu">as_nanoarrow_array</span><span class="op">(</span><span class="fl">1</span><span class="op">:</span><span class="fl">5</span><span class="op">)</span><span class="op">)</span></span></span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> &lt;nanoarrow_array i[5]&gt;</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> &lt;nanoarrow_array int32[5]&gt;</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ length    : int 5</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ null_count: int 0</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ offset    : int 0</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ buffers   :List of 2</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>   ..$ :&lt;nanoarrow_buffer_validity[0 b] at (nil)&gt;</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span>   ..$ :&lt;nanoarrow_buffer_data_int32[20 b] at 0x561d630adf78&gt;</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span>   ..$ :&lt;nanoarrow_buffer_data_int32[20 b] at 0x55dc30138918&gt;</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ dictionary: NULL</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ children  : list()</span>
 <span class="r-in"><span><span class="fu"><a href="https://rdrr.io/r/base/vector.html" class="external-link">as.vector</a></span><span class="op">(</span><span class="va">array</span><span class="op">)</span></span></span>
 <span class="r-out co"><span class="r-pr">#&gt;</span> [1] 1 2 3 4 5</span>
 <span class="r-in"><span></span></span>
 <span class="r-in"><span><span class="op">(</span><span class="va">array</span> <span class="op">&lt;-</span> <span class="fu">as_nanoarrow_array</span><span class="op">(</span><span class="fu"><a href="https://rdrr.io/r/base/data.frame.html" class="external-link">data.frame</a></span><span class="op">(</span>x <span class="op">=</span> <span class="fl">1</span><span class="op">:</span><span class="fl">5</span><span class="op">)</span><span class="op">)</span><span class="op">)</span></s [...]
-<span class="r-out co"><span class="r-pr">#&gt;</span> &lt;nanoarrow_array +s[5]&gt;</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> &lt;nanoarrow_array struct[5]&gt;</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ length    : int 5</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ null_count: int 0</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ offset    : int 0</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ buffers   :List of 1</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>   ..$ :&lt;nanoarrow_buffer_validity[0 b] at (nil)&gt;</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ children  :List of 1</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span>   ..$ x:&lt;nanoarrow_array i[5]&gt;</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span>   ..$ x:&lt;nanoarrow_array int32[5]&gt;</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>   .. ..$ length    : int 5</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>   .. ..$ null_count: int 0</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>   .. ..$ offset    : int 0</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>   .. ..$ buffers   :List of 2</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>   .. .. ..$ :&lt;nanoarrow_buffer_validity[0 b] at (nil)&gt;</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span>   .. .. ..$ :&lt;nanoarrow_buffer_data_int32[20 b] at 0x561d62a6b428&gt;</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span>   .. .. ..$ :&lt;nanoarrow_buffer_data_int32[20 b] at 0x55dc2f8da508&gt;</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>   .. ..$ dictionary: NULL</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>   .. ..$ children  : list()</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ dictionary: NULL</span>
diff --git a/dev/r/reference/as_nanoarrow_array_stream.html b/dev/r/reference/as_nanoarrow_array_stream.html
index bcbe0ed..77b8a17 100644
--- a/dev/r/reference/as_nanoarrow_array_stream.html
+++ b/dev/r/reference/as_nanoarrow_array_stream.html
@@ -100,19 +100,19 @@ type. Defaults to <code><a href="as_nanoarrow_schema.html">infer_nanoarrow_schem
     <div class="section level2">
     <h2 id="ref-examples">Examples<a class="anchor" aria-label="anchor" href="#ref-examples"></a></h2>
     <div class="sourceCode"><pre class="sourceCode r"><code><span class="r-in"><span><span class="op">(</span><span class="va">stream</span> <span class="op">&lt;-</span> <span class="fu">as_nanoarrow_array_stream</span><span class="op">(</span><span class="fu"><a href="https://rdrr.io/r/base/data.frame.html" class="external-link">data.frame</a></span><span class="op">(</span>x <span class="op">=</span> <span class="fl">1</span><span class="op">:</span><span class="fl">5</span><span clas [...]
-<span class="r-out co"><span class="r-pr">#&gt;</span> &lt;nanoarrow_array_stream[+s]&gt;</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> &lt;nanoarrow_array_stream struct&lt;x: int32&gt;&gt;</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ get_schema:function ()  </span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ get_next  :function (schema = x$get_schema(), validate = TRUE)  </span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ release   :function ()  </span>
 <span class="r-in"><span><span class="va">stream</span><span class="op">$</span><span class="fu">get_schema</span><span class="op">(</span><span class="op">)</span></span></span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> &lt;nanoarrow_schema[+s]&gt;</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> &lt;nanoarrow_schema struct&gt;</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ format    : chr "+s"</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ name      : chr ""</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ metadata  :List of 1</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>   ..$ r: chr "A\n3\n262657\n197888\n5\nUTF-8\n531\n2\n531\n1\n16\n1\n262153\n10\ndata.frame\n1026\n1\n262153\n5\nnames\n16\n1"| __truncated__</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ flags     : int 0</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ children  :List of 1</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span>   ..$ x:&lt;nanoarrow_schema[i]&gt;</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span>   ..$ x:&lt;nanoarrow_schema int32&gt;</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>   .. ..$ format    : chr "i"</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>   .. ..$ name      : chr "x"</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>   .. ..$ metadata  : list()</span>
@@ -121,20 +121,20 @@ type. Defaults to <code><a href="as_nanoarrow_schema.html">infer_nanoarrow_schem
 <span class="r-out co"><span class="r-pr">#&gt;</span>   .. ..$ dictionary: NULL</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ dictionary: NULL</span>
 <span class="r-in"><span><span class="va">stream</span><span class="op">$</span><span class="fu">get_next</span><span class="op">(</span><span class="op">)</span></span></span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> &lt;nanoarrow_array +s[5]&gt;</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> &lt;nanoarrow_array struct[5]&gt;</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ length    : int 5</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ null_count: int 0</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ offset    : int 0</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ buffers   :List of 1</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>   ..$ :&lt;nanoarrow_buffer_validity[0 b] at (nil)&gt;</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ children  :List of 1</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span>   ..$ x:&lt;nanoarrow_array i[5]&gt;</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span>   ..$ x:&lt;nanoarrow_array int32[5]&gt;</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>   .. ..$ length    : int 5</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>   .. ..$ null_count: int 0</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>   .. ..$ offset    : int 0</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>   .. ..$ buffers   :List of 2</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>   .. .. ..$ :&lt;nanoarrow_buffer_validity[0 b] at (nil)&gt;</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span>   .. .. ..$ :&lt;nanoarrow_buffer_data_int32[20 b] at 0x561d62246a48&gt;</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span>   .. .. ..$ :&lt;nanoarrow_buffer_data_int32[20 b] at 0x55dc2e9d7388&gt;</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>   .. ..$ dictionary: NULL</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>   .. ..$ children  : list()</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ dictionary: NULL</span>
diff --git a/dev/r/reference/as_nanoarrow_schema.html b/dev/r/reference/as_nanoarrow_schema.html
index eaa7277..cc1c8b8 100644
--- a/dev/r/reference/as_nanoarrow_schema.html
+++ b/dev/r/reference/as_nanoarrow_schema.html
@@ -85,7 +85,7 @@ are represented identically.</p>
     <div class="section level2">
     <h2 id="ref-examples">Examples<a class="anchor" aria-label="anchor" href="#ref-examples"></a></h2>
     <div class="sourceCode"><pre class="sourceCode r"><code><span class="r-in"><span><span class="fu">infer_nanoarrow_schema</span><span class="op">(</span><span class="fu"><a href="https://rdrr.io/r/base/integer.html" class="external-link">integer</a></span><span class="op">(</span><span class="op">)</span><span class="op">)</span></span></span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> &lt;nanoarrow_schema[i]&gt;</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> &lt;nanoarrow_schema int32&gt;</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ format    : chr "i"</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ name      : chr ""</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ metadata  : list()</span>
@@ -93,13 +93,13 @@ are represented identically.</p>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ children  : NULL</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ dictionary: NULL</span>
 <span class="r-in"><span><span class="fu">infer_nanoarrow_schema</span><span class="op">(</span><span class="fu"><a href="https://rdrr.io/r/base/data.frame.html" class="external-link">data.frame</a></span><span class="op">(</span>x <span class="op">=</span> <span class="fu"><a href="https://rdrr.io/r/base/integer.html" class="external-link">integer</a></span><span class="op">(</span><span class="op">)</span><span class="op">)</span><span class="op">)</span></span></span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> &lt;nanoarrow_schema[+s]&gt;</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> &lt;nanoarrow_schema struct&gt;</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ format    : chr "+s"</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ name      : chr ""</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ metadata  : list()</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ flags     : int 2</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>  $ children  :List of 1</span>
-<span class="r-out co"><span class="r-pr">#&gt;</span>   ..$ x:&lt;nanoarrow_schema[i]&gt;</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span>   ..$ x:&lt;nanoarrow_schema int32&gt;</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>   .. ..$ format    : chr "i"</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>   .. ..$ name      : chr "x"</span>
 <span class="r-out co"><span class="r-pr">#&gt;</span>   .. ..$ metadata  : list()</span>
diff --git a/dev/r/reference/nanoarrow_build_id.html b/dev/r/reference/nanoarrow_build_id.html
index 0d081fd..9cb6db6 100644
--- a/dev/r/reference/nanoarrow_build_id.html
+++ b/dev/r/reference/nanoarrow_build_id.html
@@ -69,7 +69,7 @@ was compiled against.</p>
     <div class="section level2">
     <h2 id="ref-examples">Examples<a class="anchor" aria-label="anchor" href="#ref-examples"></a></h2>
     <div class="sourceCode"><pre class="sourceCode r"><code><span class="r-in"><span><span class="fu">nanoarrow_build_id</span><span class="op">(</span><span class="op">)</span></span></span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> [1] "eR5yw4o99U"</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> [1] "E6g92wxRLu"</span>
 <span class="r-in"><span></span></span>
 </code></pre></div>
     </div>
diff --git a/dev/r/search.json b/dev/r/search.json
index 3c9a2ff..6a90925 100644
--- a/dev/r/search.json
+++ b/dev/r/search.json
@@ -1 +1 @@
-[{"path":"/LICENSE.html","id":null,"dir":"","previous_headings":"","what":"Apache License","title":"Apache License","text":"Version 2.0, January 2004 <http://www.apache.org/licenses/>","code":""},{"path":[]},{"path":"/LICENSE.html","id":"1-definitions","dir":"","previous_headings":"Terms and Conditions for use, reproduction, and distribution","what":"1. Definitions","title":"Apache License","text":"“License” shall mean terms conditions use, reproduction, distribution defined Sections 1 9 [...]
+[{"path":"/LICENSE.html","id":null,"dir":"","previous_headings":"","what":"Apache License","title":"Apache License","text":"Version 2.0, January 2004 <http://www.apache.org/licenses/>","code":""},{"path":[]},{"path":"/LICENSE.html","id":"1-definitions","dir":"","previous_headings":"Terms and Conditions for use, reproduction, and distribution","what":"1. Definitions","title":"Apache License","text":"“License” shall mean terms conditions use, reproduction, distribution defined Sections 1 9 [...]
diff --git a/dev/search.html b/dev/search.html
index aea74e4..a2a4078 100644
--- a/dev/search.html
+++ b/dev/search.html
@@ -11,8 +11,8 @@
   </script>
   
   <!-- Loaded before other Sphinx assets -->
-  <link href="_static/styles/theme.css?digest=9b1a4fa89bdd0e95b23b" rel="stylesheet">
-<link href="_static/styles/pydata-sphinx-theme.css?digest=9b1a4fa89bdd0e95b23b" rel="stylesheet">
+  <link href="_static/styles/theme.css?digest=1e1de1a1873e13ef5536" rel="stylesheet">
+<link href="_static/styles/pydata-sphinx-theme.css?digest=1e1de1a1873e13ef5536" rel="stylesheet">
 
   
   <link rel="stylesheet"
@@ -21,11 +21,13 @@
     href="_static/vendor/fontawesome/6.1.2/webfonts/fa-solid-900.woff2">
   <link rel="preload" as="font" type="font/woff2" crossorigin
     href="_static/vendor/fontawesome/6.1.2/webfonts/fa-brands-400.woff2">
+  <link rel="preload" as="font" type="font/woff2" crossorigin
+    href="_static/vendor/fontawesome/6.1.2/webfonts/fa-regular-400.woff2">
 
     <link rel="stylesheet" type="text/css" href="_static/pygments.css" />
   
   <!-- Pre-loaded scripts that we'll load fully later -->
-  <link rel="preload" as="script" href="_static/scripts/pydata-sphinx-theme.js?digest=9b1a4fa89bdd0e95b23b">
+  <link rel="preload" as="script" href="_static/scripts/pydata-sphinx-theme.js?digest=1e1de1a1873e13ef5536">
 
     <script data-url_root="./" id="documentation_options" src="_static/documentation_options.js"></script>
     <script src="_static/jquery.js"></script>
@@ -60,7 +62,7 @@
     <div class="search-button__search-container">
       
 <form class="bd-search d-flex align-items-center" action="#" method="get">
-  <i class="icon fas fa-search"></i>
+  <i class="fa-solid fa-magnifying-glass"></i>
   <input type="search" class="form-control" name="q" id="search-input" placeholder="Search the docs ..." aria-label="Search the docs ..." autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false">
   <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd>K</kbd></span>
 </form>
@@ -70,7 +72,7 @@
   
   <nav class="bd-header navbar navbar-expand-lg bd-navbar" id="navbar-main"><div class="bd-header__inner bd-page-width">
   <label class="sidebar-toggle primary-toggle" for="__primary">
-      <span class="fas fa-bars"></span>
+      <span class="fa-solid fa-bars"></span>
   </label>
   <div id="navbar-start">
     
@@ -109,13 +111,13 @@
         
                 <li class="nav-item">
                     <a class="nav-link" href="c.html">
-                        C API
+                        C API Reference
                     </a>
                 </li>
                 
 
             <li class="nav-item">
-                <a class="nav-link nav-external" href="r/index.html">R API<i class="fas fa-external-link-alt"></i></a>
+                <a class="nav-link nav-external" href="r/index.html">R Package<i class="fa-solid fa-up-right-from-square"></i></a>
             </li>
     </ul>
 </nav>
@@ -126,16 +128,16 @@
     <div id="navbar-end">
       <div class="navbar-end-item navbar-end__search-button-container">
         
-<button class="btn btn-sm navbar-btn search-button search-button__button" title="Search">
-  <i class="fas fa-search"></i>
+<button class="btn btn-sm navbar-btn search-button search-button__button" title="Search" data-toggle="tooltip">
+  <i class="fa-solid fa-magnifying-glass"></i>
 </button>
       </div>
       
       <div class="navbar-end-item">
-        <span class="theme-switch-button btn btn-sm btn-outline-primary navbar-btn rounded-circle">
-    <a class="theme-switch" data-mode="light"><i class="fas fa-sun"></i></a>
-    <a class="theme-switch" data-mode="dark"><i class="far fa-moon"></i></a>
-    <a class="theme-switch" data-mode="auto"><i class="fas fa-adjust"></i></a>
+        <span class="theme-switch-button btn btn-sm btn-outline-primary navbar-btn rounded-circle" title="light/dark" data-toggle="tooltip">
+    <a class="theme-switch" data-mode="light"><i class="fa-solid fa-sun"></i></a>
+    <a class="theme-switch" data-mode="dark"><i class="fa-regular fa-moon"></i></a>
+    <a class="theme-switch" data-mode="auto"><i class="fa-solid fa-circle-half-stroke"></i></a>
 </span>
       </div>
       
@@ -150,14 +152,14 @@
 
   
   <div class="search-button-container--mobile">
-<button class="btn btn-sm navbar-btn search-button search-button__button" title="Search">
-  <i class="fas fa-search"></i>
+<button class="btn btn-sm navbar-btn search-button search-button__button" title="Search" data-toggle="tooltip">
+  <i class="fa-solid fa-magnifying-glass"></i>
 </button>
   </div>
 
   
   <label class="sidebar-toggle secondary-toggle" for="__secondary">
-      <span class="fas fa-outdent"></span>
+      <span class="fa-solid fa-outdent"></span>
   </label>
   
 
@@ -185,13 +187,13 @@
         
                 <li class="nav-item">
                     <a class="nav-link" href="c.html">
-                        C API
+                        C API Reference
                     </a>
                 </li>
                 
 
             <li class="nav-item">
-                <a class="nav-link nav-external" href="r/index.html">R API<i class="fas fa-external-link-alt"></i></a>
+                <a class="nav-link nav-external" href="r/index.html">R Package<i class="fa-solid fa-up-right-from-square"></i></a>
             </li>
     </ul>
 </nav>
@@ -205,10 +207,10 @@
     <div class="sidebar-header-items__end">
       
       <div class="navbar-end-item">
-        <span class="theme-switch-button btn btn-sm btn-outline-primary navbar-btn rounded-circle">
-    <a class="theme-switch" data-mode="light"><i class="fas fa-sun"></i></a>
-    <a class="theme-switch" data-mode="dark"><i class="far fa-moon"></i></a>
-    <a class="theme-switch" data-mode="auto"><i class="fas fa-adjust"></i></a>
+        <span class="theme-switch-button btn btn-sm btn-outline-primary navbar-btn rounded-circle" title="light/dark" data-toggle="tooltip">
+    <a class="theme-switch" data-mode="light"><i class="fa-solid fa-sun"></i></a>
+    <a class="theme-switch" data-mode="dark"><i class="fa-regular fa-moon"></i></a>
+    <a class="theme-switch" data-mode="auto"><i class="fa-solid fa-circle-half-stroke"></i></a>
 </span>
       </div>
       
@@ -225,7 +227,7 @@
   <div class="sidebar-start-items sidebar-primary__section">
     <div class="sidebar-start-items__item">
 <form class="bd-search d-flex align-items-center" action="#" method="get">
-  <i class="icon fas fa-search"></i>
+  <i class="fa-solid fa-magnifying-glass"></i>
   <input type="search" class="form-control" name="q" id="search-input" placeholder="Search the docs ..." aria-label="Search the docs ..." autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false">
   <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd>K</kbd></span>
 </form>
@@ -265,7 +267,7 @@
 
   
 <form class="bd-search d-flex align-items-center" action="#" method="get">
-  <i class="icon fas fa-search"></i>
+  <i class="fa-solid fa-magnifying-glass"></i>
   <input type="search" class="form-control" name="q" id="search-input" placeholder="Search the docs ..." aria-label="Search the docs ..." autocomplete="off" autocorrect="off" autocapitalize="off" spellcheck="false">
   <span class="search-button__kbd-shortcut"><kbd class="kbd-shortcut__modifier">Ctrl</kbd>+<kbd>K</kbd></span>
 </form>
@@ -299,6 +301,11 @@ if (searchInput) {
               
 <div class="toc-item">
   
+<div id="searchbox"></div>
+</div>
+
+<div class="toc-item">
+  
 </div>
 
 <div class="toc-item">
@@ -322,7 +329,7 @@ if (searchInput) {
   
     
   <!-- Scripts loaded after <body> so the DOM is not blocked -->
-  <script src="_static/scripts/pydata-sphinx-theme.js?digest=9b1a4fa89bdd0e95b23b"></script>
+  <script src="_static/scripts/pydata-sphinx-theme.js?digest=1e1de1a1873e13ef5536"></script>
 
   <footer class="bd-footer"><div class="bd-footer__inner container">
   
@@ -339,7 +346,7 @@ if (searchInput) {
   <div class="footer-item">
     
 <p class="sphinx-version">
-Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.2.2.<br>
+Created using <a href="http://sphinx-doc.org/">Sphinx</a> 5.2.3.<br>
 </p>
 
   </div>
diff --git a/dev/searchindex.js b/dev/searchindex.js
index 23cb6fe..e06c86a 100644
--- a/dev/searchindex.js
+++ b/dev/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["c", "index"], "filenames": ["c.rst", "index.rst"], "titles": ["C API", "nanoarrow"], "terms": {"enum": 0, "arrowtimeunit": 0, "arrow": [0, 1], "time": 0, "unit": 0, "enumer": 0, "These": 0, "name": 0, "valu": 0, "map": 0, "correspond": 0, "timeunit": 0, "type": 0, "nanoarrow_time_unit_second": 0, "nanoarrow_time_unit_milli": 0, "nanoarrow_time_unit_micro": 0, "nanoarrow_time_unit_nano": 0, "function": 0, "void": 0, "arrowmalloc": 0, "int64_t": 0, "size": 0, [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["c", "index"], "filenames": ["c.rst", "index.rst"], "titles": ["C API Reference", "nanoarrow"], "terms": {"group": 0, "nanoarrow": 0, "These": 0, "function": [0, 1], "alloc": 0, "copi": [0, 1], "destroi": 0, "arrowschema": [0, 1], "arrowerrorcod": 0, "arrowschemainit": [0, 1], "struct": [0, 1], "enum": 0, "arrowtyp": 0, "type": 0, "initi": 0, "field": 0, "releas": [0, 1], "callback": 0, "schema_out": [0, 1], "caller": 0, "i": [0, 1], "respons": 0, "call": 0, [...]
\ No newline at end of file