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 2023/05/09 13:47:49 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 f2b3cca  update documentation for tag dev
f2b3cca is described below

commit f2b3ccaca9ef71eb4e44ce3113a968a3235661e4
Author: GitHub Actions <ac...@github.com>
AuthorDate: Tue May 9 13:47:43 2023 +0000

    update documentation for tag dev
---
 dev/_sources/cpp.rst.txt                       |   6 ++++
 dev/_sources/ipc.rst.txt                       |  10 ++++++
 dev/c.html                                     |  22 +++++++++++--
 dev/cpp.html                                   |  31 +++++++++++++++++--
 dev/genindex.html                              |  30 +++++++++++++++---
 dev/index.html                                 |  10 ++++--
 dev/ipc.html                                   |  41 +++++++++++++++++++++++--
 dev/objects.inv                                | Bin 15992 -> 16231 bytes
 dev/r/pkgdown.yml                              |   2 +-
 dev/r/reference/as_nanoarrow_array.html        |   4 +--
 dev/r/reference/as_nanoarrow_array_stream.html |   2 +-
 dev/r/reference/as_nanoarrow_buffer.html       |   4 +--
 dev/r/search.json                              |   2 +-
 dev/search.html                                |   3 +-
 dev/searchindex.js                             |   2 +-
 15 files changed, 144 insertions(+), 25 deletions(-)

diff --git a/dev/_sources/cpp.rst.txt b/dev/_sources/cpp.rst.txt
index 44b7b4e..615262f 100644
--- a/dev/_sources/cpp.rst.txt
+++ b/dev/_sources/cpp.rst.txt
@@ -20,6 +20,12 @@ C++ API Reference
 
 .. doxygengroup:: nanoarrow_hpp
 
+Error handling
+--------------
+
+.. doxygengroup:: nanoarrow_hpp-errors
+   :members:
+
 Owning object wrappers
 ----------------------
 .. doxygengroup:: nanoarrow_hpp-unique
diff --git a/dev/_sources/ipc.rst.txt b/dev/_sources/ipc.rst.txt
index 8bc7214..fb009c1 100644
--- a/dev/_sources/ipc.rst.txt
+++ b/dev/_sources/ipc.rst.txt
@@ -18,6 +18,16 @@
 IPC Extension Reference
 =======================
 
+C API
+------------------------
+
 .. doxygengroup:: nanoarrow_ipc
    :project: nanoarrow_ipc
    :members:
+
+C++ Helpers
+------------------------
+
+.. doxygengroup:: nanoarrow_ipc_hpp-unique
+   :project: nanoarrow_ipc
+   :members:
diff --git a/dev/c.html b/dev/c.html
index aebf98f..70aae90 100644
--- a/dev/c.html
+++ b/dev/c.html
@@ -1,5 +1,4 @@
 
-
 <!DOCTYPE html>
 
 
@@ -1511,7 +1510,8 @@ document.write(`
 <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>
+<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. If a nanoarrow function is passed a non-null <a class="reference internal" href="#struct_arrow_error"><span  [...]
+<p>Except where documented, it is generally not safe to continue after a function has returned a non-zero ArrowErrorCode. The NANOARROW_RETURN_NOT_OK and NANOARROW_ASSERT_OK macros are provided to help propagate errors. C++ clients can use the helpers provided in the nanoarrow.hpp header to facilitate using C++ idioms for memory management and error propgagtion. </p>
 <div class="breathe-sectiondef docutils container">
 <p class="breathe-sectiondef-title rubric" id="breathe-section-title-defines">Defines</p>
 <dl class="cpp macro">
@@ -1526,6 +1526,13 @@ document.write(`
 <dd><p>Check the result of an expression and return it if not NANOARROW_OK. </p>
 </dd></dl>
 
+<dl class="cpp macro">
+<dt class="sig sig-object cpp" id="c.NANOARROW_RETURN_NOT_OK_WITH_ERROR">
+<span class="target" id="group__nanoarrow-errors_1ga451f1a4d74fac95ca5e02398b16713bb"></span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_RETURN_NOT_OK_WITH_ERROR</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">EXPR</span></span>, <span class="n"><span class="pre">ERROR_EXPR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#c.NANOARROW_RETURN_NOT_OK_WITH_ERROR" title="Permalink to this definition [...]
+<dd><p>Check the result of an expression and return it if not NANOARROW_OK, adding an auto-generated message to an <a class="reference internal" href="#struct_arrow_error"><span class="std std-ref">ArrowError</span></a>. </p>
+<p>This macro is used to ensure that functions that accept an <a class="reference internal" href="#struct_arrow_error"><span class="std std-ref">ArrowError</span></a> as input always set its message when returning an error code (e.g., when calling a nanoarrow function that does <em>not</em> accept <a class="reference internal" href="#struct_arrow_error"><span class="std std-ref">ArrowError</span></a>). </p>
+</dd></dl>
+
 </div>
 <div class="breathe-sectiondef docutils container">
 <p class="breathe-sectiondef-title rubric" id="breathe-section-title-typedefs">Typedefs</p>
@@ -1538,16 +1545,25 @@ document.write(`
 </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="_CPPv414ArrowErrorInitP10ArrowError">
+<span id="_CPPv314ArrowErrorInitP10ArrowError"></span><span id="_CPPv214ArrowErrorInitP10ArrowError"></span><span id="ArrowErrorInit__ArrowErrorP"></span><span class="target" id="group__nanoarrow-errors_1ga83bb6736f6a4b2bc860731e10116154c"></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= [...]
+<dd><p>Ensure an <a class="reference internal" href="#struct_arrow_error"><span class="std std-ref">ArrowError</span></a> is null-terminated by zeroing the first character. </p>
+<p>If error is NULL, this function does nothing. </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="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>
+<p>If error is NULL, this function does nothing and returns NANOARROW_OK. </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>
+<p>If error is NULL, returns “”, or returns the contents of the error message otherwise. </p>
 </dd></dl>
 
 </div>
@@ -2331,7 +2347,7 @@ document.write(`
       
         <div class="footer-item">
   <p class="sphinx-version">
-    Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 6.1.3.
+    Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 7.0.0.
     <br/>
   </p>
 </div>
diff --git a/dev/cpp.html b/dev/cpp.html
index 18bfcd8..736778e 100644
--- a/dev/cpp.html
+++ b/dev/cpp.html
@@ -1,5 +1,4 @@
 
-
 <!DOCTYPE html>
 
 
@@ -356,6 +355,33 @@ document.write(`
 <dd><p>The utilities provided in this file are intended to support C++ users of the nanoarrow C library such that C++-style resource allocation and error handling can be used with nanoarrow data structures. These utilities are not intended to mirror the nanoarrow C API. </p>
 </dd></dl>
 
+<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__hpp-errors"></span><em><span class="pre">group</span></em> <span class="sig-name descname"><span class="pre">nanoarrow_hpp-errors</span></span></dt>
+<dd><p>Most functions in the C API return an ArrowErrorCode to communicate possible failure. Except where documented, it is usually not safe to continue after a non-zero value has been returned. While the nanoarrow C++ helpers do not throw any exceptions of their own, these helpers are provided to facilitate using the nanoarrow C++ helpers in frameworks where this is a useful error handling idiom. </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_THROW_NOT_OK_IMPL">
+<span class="target" id="group__nanoarrow__hpp-errors_1gaafcc7dac6fcd1f00addabc7e248806c2"></span><span class="sig-name descname"><span class="n"><span class="pre">_NANOARROW_THROW_NOT_OK_IMPL</span></span></span><span class="sig-paren">(</span><span class="n"><span class="pre">NAME</span></span>, <span class="n"><span class="pre">EXPR</span></span>, <span class="n"><span class="pre">EXPR_STR</span></span><span class="sig-paren">)</span><a class="headerlink" href="#c._NANOARROW_THROW_NOT [...]
+<dd></dd></dl>
+
+<dl class="cpp macro">
+<dt class="sig sig-object cpp" id="c.NANOARROW_THROW_NOT_OK">
+<span class="target" id="group__nanoarrow__hpp-errors_1ga4b10c1b6dd5ccbe52087f1cf59475203"></span><span class="sig-name descname"><span class="n"><span class="pre">NANOARROW_THROW_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_THROW_NOT_OK" title="Permalink to this definition">#</a><br /></dt>
+<dd></dd></dl>
+
+</div>
+<dl class="cpp class">
+<dt class="sig sig-object cpp" id="_CPPv4N9nanoarrow9ExceptionE">
+<span id="_CPPv3N9nanoarrow9ExceptionE"></span><span id="_CPPv2N9nanoarrow9ExceptionE"></span><span id="nanoarrow::Exception"></span><span class="target" id="classnanoarrow_1_1_exception"></span><span class="k"><span class="pre">class</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">Exception</span></span></span><span class="w"> </span><span class="p"><span class="pre">:</span></span><span class="w"> </span><span class="k"><span class [...]
+<dd></dd></dl>
+
+</dd></dl>
+
+</section>
 <section id="owning-object-wrappers">
 <h2>Owning object wrappers<a class="headerlink" href="#owning-object-wrappers" title="Permalink to this heading">#</a></h2>
 <dl>
@@ -672,6 +698,7 @@ document.write(`
   </div>
   <nav class="bd-toc-nav 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="#error-handling">Error handling</a></li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#owning-object-wrappers">Owning object wrappers</a></li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#array-stream-utilities">Array Stream utilities</a></li>
 <li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#base-classes-and-utilities">Base classes and utilities</a></li>
@@ -733,7 +760,7 @@ document.write(`
       
         <div class="footer-item">
   <p class="sphinx-version">
-    Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 6.1.3.
+    Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 7.0.0.
     <br/>
   </p>
 </div>
diff --git a/dev/genindex.html b/dev/genindex.html
index 5e40186..9e22158 100644
--- a/dev/genindex.html
+++ b/dev/genindex.html
@@ -1,5 +1,4 @@
 
-
 <!DOCTYPE html>
 
 
@@ -319,7 +318,8 @@ document.write(`
 <h1 id="index">Index</h1>
 
 <div class="genindex-jumpbox">
- <a href="#A"><strong>A</strong></a>
+ <a href="#_"><strong>_</strong></a>
+ | <a href="#A"><strong>A</strong></a>
  | <a href="#I"><strong>I</strong></a>
  | <a href="#M"><strong>M</strong></a>
  | <a href="#N"><strong>N</strong></a>
@@ -327,6 +327,14 @@ document.write(`
  | <a href="#U"><strong>U</strong></a>
  
 </div>
+<h2 id="_">_</h2>
+<table style="width: 100%" class="indextable genindextable"><tr>
+  <td style="width: 33%; vertical-align: top;"><ul>
+      <li><a href="cpp.html#c._NANOARROW_THROW_NOT_OK_IMPL">_NANOARROW_THROW_NOT_OK_IMPL (C macro)</a>
+</li>
+  </ul></td>
+</tr></table>
+
 <h2 id="A">A</h2>
 <table style="width: 100%" class="indextable genindextable"><tr>
   <td style="width: 33%; vertical-align: top;"><ul>
@@ -627,6 +635,8 @@ document.write(`
       <li><a href="c.html#_CPPv4N10ArrowError7messageE">ArrowError::message (C++ member)</a>
 </li>
       <li><a href="c.html#_CPPv414ArrowErrorCode">ArrowErrorCode (C++ type)</a>
+</li>
+      <li><a href="c.html#_CPPv414ArrowErrorInitP10ArrowError">ArrowErrorInit (C++ function)</a>
 </li>
       <li><a href="c.html#_CPPv417ArrowErrorMessageP10ArrowError">ArrowErrorMessage (C++ function)</a>
 </li>
@@ -1011,6 +1021,8 @@ document.write(`
       <li><a href="cpp.html#_CPPv4N9nanoarrow16EmptyArrayStreamE">nanoarrow::EmptyArrayStream (C++ class)</a>
 </li>
       <li><a href="cpp.html#_CPPv4N9nanoarrow16EmptyArrayStream10MakeUniqueEP11ArrowSchema">nanoarrow::EmptyArrayStream::MakeUnique (C++ function)</a>
+</li>
+      <li><a href="cpp.html#_CPPv4N9nanoarrow9ExceptionE">nanoarrow::Exception (C++ class)</a>
 </li>
       <li><a href="cpp.html#_CPPv4I0EN9nanoarrow8internal6UniqueE">nanoarrow::internal::Unique (C++ class)</a>
 </li>
@@ -1037,6 +1049,10 @@ document.write(`
       <li><a href="c.html#c.NANOARROW_OK">NANOARROW_OK (C macro)</a>
 </li>
       <li><a href="c.html#c.NANOARROW_RETURN_NOT_OK">NANOARROW_RETURN_NOT_OK (C macro)</a>
+</li>
+      <li><a href="c.html#c.NANOARROW_RETURN_NOT_OK_WITH_ERROR">NANOARROW_RETURN_NOT_OK_WITH_ERROR (C macro)</a>
+</li>
+      <li><a href="cpp.html#c.NANOARROW_THROW_NOT_OK">NANOARROW_THROW_NOT_OK (C macro)</a>
 </li>
   </ul></td>
 </tr></table>
@@ -1058,11 +1074,15 @@ document.write(`
 </li>
       <li><a href="cpp.html#_CPPv415UniqueArrayView">UniqueArrayView (C++ type)</a>
 </li>
-  </ul></td>
-  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="cpp.html#_CPPv412UniqueBitmap">UniqueBitmap (C++ type)</a>
 </li>
+  </ul></td>
+  <td style="width: 33%; vertical-align: top;"><ul>
       <li><a href="cpp.html#_CPPv412UniqueBuffer">UniqueBuffer (C++ type)</a>
+</li>
+      <li><a href="ipc.html#_CPPv413UniqueDecoder">UniqueDecoder (C++ type)</a>
+</li>
+      <li><a href="ipc.html#_CPPv417UniqueInputStream">UniqueInputStream (C++ type)</a>
 </li>
       <li><a href="cpp.html#_CPPv412UniqueSchema">UniqueSchema (C++ type)</a>
 </li>
@@ -1121,7 +1141,7 @@ document.write(`
       
         <div class="footer-item">
   <p class="sphinx-version">
-    Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 6.1.3.
+    Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 7.0.0.
     <br/>
   </p>
 </div>
diff --git a/dev/index.html b/dev/index.html
index e18ffe1..50ee901 100644
--- a/dev/index.html
+++ b/dev/index.html
@@ -1,5 +1,4 @@
 
-
 <!DOCTYPE html>
 
 
@@ -431,12 +430,17 @@ repository.</p>
 </ul>
 </li>
 <li class="toctree-l1"><a class="reference internal" href="cpp.html">C++ API Reference</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="cpp.html#error-handling">Error handling</a></li>
 <li class="toctree-l2"><a class="reference internal" href="cpp.html#owning-object-wrappers">Owning object wrappers</a></li>
 <li class="toctree-l2"><a class="reference internal" href="cpp.html#array-stream-utilities">Array Stream utilities</a></li>
 <li class="toctree-l2"><a class="reference internal" href="cpp.html#base-classes-and-utilities">Base classes and utilities</a></li>
 </ul>
 </li>
-<li class="toctree-l1"><a class="reference internal" href="ipc.html">IPC Extension Reference</a></li>
+<li class="toctree-l1"><a class="reference internal" href="ipc.html">IPC Extension Reference</a><ul>
+<li class="toctree-l2"><a class="reference internal" href="ipc.html#c-api">C API</a></li>
+<li class="toctree-l2"><a class="reference internal" href="ipc.html#c-helpers">C++ Helpers</a></li>
+</ul>
+</li>
 </ul>
 </div>
 </section>
@@ -540,7 +544,7 @@ repository.</p>
       
         <div class="footer-item">
   <p class="sphinx-version">
-    Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 6.1.3.
+    Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 7.0.0.
     <br/>
   </p>
 </div>
diff --git a/dev/ipc.html b/dev/ipc.html
index 7ce05fc..14a1da2 100644
--- a/dev/ipc.html
+++ b/dev/ipc.html
@@ -1,5 +1,4 @@
 
-
 <!DOCTYPE html>
 
 
@@ -349,6 +348,8 @@ document.write(`
                   
   <section id="ipc-extension-reference">
 <h1>IPC Extension Reference<a class="headerlink" href="#ipc-extension-reference" title="Permalink to this heading">#</a></h1>
+<section id="c-api">
+<h2>C API<a class="headerlink" href="#c-api" title="Permalink to this heading">#</a></h2>
 <dl>
 <dt class="sig sig-object cpp">
 <span class="target" id="group__nanoarrow__ipc"></span><em><span class="pre">group</span></em> <span class="sig-name descname"><span class="pre">nanoarrow_ipc</span></span></dt>
@@ -750,6 +751,31 @@ document.write(`
 
 </dd></dl>
 
+</section>
+<section id="c-helpers">
+<h2>C++ Helpers<a class="headerlink" href="#c-helpers" title="Permalink to this heading">#</a></h2>
+<dl>
+<dt class="sig sig-object cpp">
+<span class="target" id="group__nanoarrow__ipc__hpp-unique"></span><em><span class="pre">group</span></em> <span class="sig-name descname"><span class="pre">nanoarrow_ipc_hpp-unique</span></span></dt>
+<dd><p>Extends the unique object wrappers in nanoarrow.hpp to include C structs defined in the nanoarrow_ipc.h header. </p>
+<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="_CPPv413UniqueDecoder">
+<span id="_CPPv313UniqueDecoder"></span><span id="_CPPv213UniqueDecoder"></span><span class="target" id="group__nanoarrow__ipc__hpp-unique_1ga8e49ccb04c056f739bb40de41a7f3537"></span><span class="k"><span class="pre">using</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">UniqueDecoder</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span class="pre">i [...]
+<dd><p>Class wrapping a unique struct <a class="reference internal" href="#struct_arrow_ipc_decoder"><span class="std std-ref">ArrowIpcDecoder</span></a>. </p>
+</dd></dl>
+
+<dl class="cpp type">
+<dt class="sig sig-object cpp" id="_CPPv417UniqueInputStream">
+<span id="_CPPv317UniqueInputStream"></span><span id="_CPPv217UniqueInputStream"></span><span class="target" id="group__nanoarrow__ipc__hpp-unique_1ga01cded4704dc447650624c061d1fe5db"></span><span class="k"><span class="pre">using</span></span><span class="w"> </span><span class="sig-name descname"><span class="n"><span class="pre">UniqueInputStream</span></span></span><span class="w"> </span><span class="p"><span class="pre">=</span></span><span class="w"> </span><span class="n"><span c [...]
+<dd><p>Class wrapping a unique struct <a class="reference internal" href="#struct_arrow_ipc_input_stream"><span class="std std-ref">ArrowIpcInputStream</span></a>. </p>
+</dd></dl>
+
+</div>
+</dd></dl>
+
+</section>
 </section>
 
 
@@ -784,6 +810,17 @@ document.write(`
               
                 <div class="bd-sidebar-secondary bd-toc"><div class="sidebar-secondary-items sidebar-secondary__inner">
 
+  <div class="sidebar-secondary-item">
+  <div class="page-toc tocsection onthispage">
+    <i class="fa-solid fa-list"></i> On this page
+  </div>
+  <nav class="bd-toc-nav 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="#c-api">C API</a></li>
+<li class="toc-h2 nav-item toc-entry"><a class="reference internal nav-link" href="#c-helpers">C++ Helpers</a></li>
+</ul>
+  </nav></div>
+
   <div class="sidebar-secondary-item">
   
   <div class="tocsection editthispage">
@@ -839,7 +876,7 @@ document.write(`
       
         <div class="footer-item">
   <p class="sphinx-version">
-    Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 6.1.3.
+    Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 7.0.0.
     <br/>
   </p>
 </div>
diff --git a/dev/objects.inv b/dev/objects.inv
index 71d7765..f8e616d 100644
Binary files a/dev/objects.inv and b/dev/objects.inv differ
diff --git a/dev/r/pkgdown.yml b/dev/r/pkgdown.yml
index 74e8729..c18d593 100644
--- a/dev/r/pkgdown.yml
+++ b/dev/r/pkgdown.yml
@@ -2,5 +2,5 @@ pandoc: 2.9.2.1
 pkgdown: 2.0.7
 pkgdown_sha: ~
 articles: {}
-last_built: 2023-04-21T19:27Z
+last_built: 2023-05-09T13:47Z
 
diff --git a/dev/r/reference/as_nanoarrow_array.html b/dev/r/reference/as_nanoarrow_array.html
index b38f74c..8834684 100644
--- a/dev/r/reference/as_nanoarrow_array.html
+++ b/dev/r/reference/as_nanoarrow_array.html
@@ -97,7 +97,7 @@ type. Defaults to <code><a href="as_nanoarrow_schema.html">infer_nanoarrow_schem
 <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 0x563bf1766d18&gt;</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span>   ..$ :&lt;nanoarrow_buffer_data_int32[20 b] at 0x557077d174f8&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>
@@ -117,7 +117,7 @@ type. Defaults to <code><a href="as_nanoarrow_schema.html">infer_nanoarrow_schem
 <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 0x563bf0ab2df8&gt;</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span>   .. .. ..$ :&lt;nanoarrow_buffer_data_int32[20 b] at 0x55707757fdd8&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 1b660ad..8b54fa0 100644
--- a/dev/r/reference/as_nanoarrow_array_stream.html
+++ b/dev/r/reference/as_nanoarrow_array_stream.html
@@ -133,7 +133,7 @@ type. Defaults to <code><a href="as_nanoarrow_schema.html">infer_nanoarrow_schem
 <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 0x563bf15fa408&gt;</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span>   .. .. ..$ :&lt;nanoarrow_buffer_data_int32[20 b] at 0x557077b8a4e8&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_buffer.html b/dev/r/reference/as_nanoarrow_buffer.html
index 75272a3..dac2df1 100644
--- a/dev/r/reference/as_nanoarrow_buffer.html
+++ b/dev/r/reference/as_nanoarrow_buffer.html
@@ -72,12 +72,12 @@
     <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="va">array</span> <span class="op">&lt;-</span> <span class="fu"><a href="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">4</span><span class="op">)</span></span></span>
 <span class="r-in"><span><span class="va">array</span><span class="op">$</span><span class="va">buffers</span><span class="op">[[</span><span class="fl">2</span><span class="op">]</span><span class="op">]</span></span></span>
-<span class="r-out co"><span class="r-pr">#&gt;</span> &lt;nanoarrow_buffer_data_int32[16 b] at 0x563bf313d508&gt;</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> &lt;nanoarrow_buffer_data_int32[16 b] at 0x557079754a58&gt;</span>
 <span class="r-in"><span><span class="fu"><a href="https://rdrr.io/r/base/raw.html" class="external-link">as.raw</a></span><span class="op">(</span><span class="va">array</span><span class="op">$</span><span class="va">buffers</span><span class="op">[[</span><span class="fl">2</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>  [1] 01 00 00 00 02 00 00 00 03 00 00 00 04 00 00 00</span>
 <span class="r-in"><span></span></span>
 <span class="r-in"><span><span class="fu">as_nanoarrow_buffer</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="r-out co"><span class="r-pr">#&gt;</span> &lt;nanoarrow_buffer[20 b] at 0x563bf33f7f18&gt;</span>
+<span class="r-out co"><span class="r-pr">#&gt;</span> &lt;nanoarrow_buffer[20 b] at 0x557079a3f098&gt;</span>
 <span class="r-in"><span></span></span>
 <span class="r-in"><span><span class="va">buffer</span> <span class="op">&lt;-</span> <span class="fu">as_nanoarrow_buffer</span><span class="op">(</span><span class="cn">NULL</span><span class="op">)</span></span></span>
 <span class="r-in"><span></span></span>
diff --git a/dev/r/search.json b/dev/r/search.json
index b572e62..b86e4b4 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 581b2ef..9f7f2c2 100644
--- a/dev/search.html
+++ b/dev/search.html
@@ -1,5 +1,4 @@
 
-
 <!DOCTYPE html>
 
 
@@ -397,7 +396,7 @@ document.write(`
       
         <div class="footer-item">
   <p class="sphinx-version">
-    Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 6.1.3.
+    Created using <a href="https://www.sphinx-doc.org/">Sphinx</a> 7.0.0.
     <br/>
   </p>
 </div>
diff --git a/dev/searchindex.js b/dev/searchindex.js
index 5b26098..51c6d10 100644
--- a/dev/searchindex.js
+++ b/dev/searchindex.js
@@ -1 +1 @@
-Search.setIndex({"docnames": ["c", "cpp", "index", "ipc"], "filenames": ["c.rst", "cpp.rst", "index.rst", "ipc.rst"], "titles": ["C API Reference", "C++ API Reference", "nanoarrow", "IPC Extension Reference"], "terms": {"group": [0, 1, 3], "nanoarrow": [0, 1, 3], "except": [0, 3], "where": [0, 2, 3], "note": [0, 3], "object": [0, 2, 3], "ar": [0, 1, 3], "thread": [0, 3], "safe": [0, 3], "client": [0, 2, 3], "should": [0, 2, 3], "take": [0, 1, 3], "care": [0, 3], "serial": [0, 3], "access [...]
\ No newline at end of file
+Search.setIndex({"docnames": ["c", "cpp", "index", "ipc"], "filenames": ["c.rst", "cpp.rst", "index.rst", "ipc.rst"], "titles": ["C API Reference", "C++ API Reference", "nanoarrow", "IPC Extension Reference"], "terms": {"group": [0, 1, 3], "nanoarrow": [0, 1, 3], "except": [0, 1, 3], "where": [0, 1, 2, 3], "note": [0, 3], "object": [0, 2, 3], "ar": [0, 1, 3], "thread": [0, 3], "safe": [0, 1, 3], "client": [0, 2, 3], "should": [0, 2, 3], "take": [0, 1, 3], "care": [0, 3], "serial": [0, 3] [...]
\ No newline at end of file