<!--
SPDX-FileCopyrightText: The Apache Software Foundation

SPDX-License-Identifier: Apache-2.0
-->

<!DOCTYPE html>
<html lang="en">
<head>
  <title>Arrow.MonthDayNanoIntervalArrayBuilder.append_value</title>
  <meta name="viewport" content="width=device-width, initial-scale=1">

  <meta charset="utf-8" />

  
  <meta property="og:type" content="website"/>

  

  
  <meta priority="og:title" content="Arrow.MonthDayNanoIntervalArrayBuilder.append_value"/>
  <meta priority="og:description" content="Reference for Arrow.MonthDayNanoIntervalArrayBuilder.append_value"/>
  <meta name="twitter:title" content="Arrow.MonthDayNanoIntervalArrayBuilder.append_value"/>
  <meta name="twitter:description" content="Reference for Arrow.MonthDayNanoIntervalArrayBuilder.append_value"/>


  
  <meta name="twitter:card" content="summary"/>

  
  
  
  

  <link rel="stylesheet" href="style.css" type="text/css" />

  

  
  <script src="urlmap.js"></script>
  
  
  <script src="fzy.js"></script>
  <script src="search.js"></script>
  
  <script src="main.js"></script>

  
</head>

<body>
  <div id="body-wrapper" tabindex="-1">

    <nav class="sidebar devhelp-hidden">
      
      
      <div class="search section">
        <form id="search-form" autocomplete="off">
          <input id="search-input" type="text" name="do-not-autocomplete" placeholder="Click, or press 's' to search" autocomplete="off"/>
        </form>
      </div>
      
      <div class="section namespace">
        <h3><a href="index.html">Arrow</a></h3>
        <p>API Version: 25.0</p>
        
        <p>Library Version: 25.0.0.dev</p>
        
      </div>
      
<div class="section">
  <h5>Type</h5>
  <div class="links">
    <a href="class.MonthDayNanoIntervalArrayBuilder.html">MonthDayNanoIntervalArrayBuilder</a>
  </div>
</div>
<div class="section">
  <h5>Methods</h5>
  <div class="links">
  
    <a class="method current" href="method.MonthDayNanoIntervalArrayBuilder.append_value.html">append_value</a>
  
    <a class="method" href="method.MonthDayNanoIntervalArrayBuilder.append_values.html">append_values</a>
  
  </div>
</div>

      <div class="section generator">
        <p>Generated by <a href="https://gitlab.gnome.org/GNOME/gi-docgen">gi-docgen</a> 2025.3</p>
      </div>
    </nav>

    <button id="btn-to-top" class="hidden"><span class="up-arrow"></span></button>

    
<section id="main" class="content">
  <header>
    <h3>Method</h3>
    <h1><a href="index.html">Arrow</a><span class="sep"></span><a href="class.MonthDayNanoIntervalArrayBuilder.html">MonthDayNanoIntervalArrayBuilder</a><span class="sep"></span>append_value</h1>
  </header>

  <section>
    <div class="docblock">
      <p><span class="emblem available">since: 8.0.0</span></p>
    </div>

    <div class="declaration toggle-wrapper">
      <h4 style="display:flex;" id="declaration">
        Declaration
        <a class="anchor" href="#declaration"></a>
        
        <a class="srclink" title="go to source location" href="https://github.com/apache/arrow/blob/main/c_glib/arrow-glib/array-builder.h#L1431">[src]</a>
        
      </h4>

      <div class="docblock c-decl">
        <pre><code><div class="highlight"><pre><span></span><span class="n">gboolean</span>
<span class="n">garrow_month_day_nano_interval_array_builder_append_value</span><span class="w"> </span><span class="p">(</span>
<span class="w">  </span><span class="n">GArrowMonthDayNanoIntervalArrayBuilder</span><span class="o">*</span><span class="w"> </span><span class="n">builder</span><span class="p">,</span>
<span class="w">  </span><span class="n">GArrowMonthDayNano</span><span class="o">*</span><span class="w"> </span><span class="n">value</span><span class="p">,</span>
<span class="w">  </span><span class="n">GError</span><span class="o">**</span><span class="w"> </span><span class="n">error</span>
<span class="p">)</span>
</pre></div>
</code></pre>
      </div>
    </div>

    <div class="description toggle-wrapper">
      <h4 style="display:flex;" id="description">
        Description
        <a class="anchor" href="#description"></a>
        
      </h4>

      <div class="docblock">
        <p>No description available.</p>
      </div>

      <div class="docblock">
        
        <p>Available since: 8.0.0</p>
        
        
        
        
        
      </div>

      
    </div>

    
    <div class="parameters toggle-wrapper">
      <h4 id="parameters">
        Parameters
        <a href="#parameters" class="anchor"></a>
      </h4>

      <div class="docblock">
        <dl class="arguments">
          

          
          <dt class="arg-name"><code>value</code></dt>
          <dd class="arg-description">
            <p><em>Type:</em>&nbsp;<a href="class.MonthDayNano.html"><code>GArrowMonthDayNano</code></a></p>
            <p>A <code>GArrowMonthDayNano</code>.</p>
            <table>
            
            
            
            
            
            
            
            <tr><td title="transfer: none">The data is owned by the caller of the method.</td></tr>
            
            </table>
          </dd>
          

          
          <dt class="arg-name"><code>error</code></dt>
          <dd class="arg-description">
            <p><em>Type:</em>&nbsp;<a href="javascript:void(0)" data-namespace="GLib" data-link="struct.Error.html" class="external"><code>GError **</code></a></p>
            <p>The return location for <a href="https://docs.gtk.org/glib/error-reporting.html#rules-for-use-of-gerror">a recoverable error</a>.</p>
            <table>
              <tr><td>The argument can be <code>NULL</code>.</td></tr>
              <tr><td>If the return location is not <code>NULL</code>, then you must initialize it to a <code>NULL</code> <code>GError*</code>.</td></tr>
              <tr><td>The argument will be left initialized to <code>NULL</code> by the method if there are no errors.</td></tr>
              <tr><td>In case of error, the argument will be set to a newly allocated <code>GError</code>; the caller will take ownership of the data, and be responsible for freeing it.</td></tr>
            </table>
          </dd>
          
        </dl>
      </div>
    </div>
    

    
    <div class="return-value toggle-wrapper">
      <h4 id="return-value">
        Return value
        <a href="#return-value" class="anchor"></a>
      </h4>

      <div class="docblock">
        <div class="returns">
          <div class="arg-description">
            <p><em>Type:</em>&nbsp;<code>gboolean</code></p>
            <p><code>TRUE</code> on success, <code>FALSE</code> if there was an&nbsp;error.</p>
          </div>
          <div>
            <table>
            
            
            
            
            
            
            </table>
          </div>
        </div>
      </div>
    </div>
    

  </section>
</section>


    

    <section id="search" class="content hidden"></section>

    <footer>
    
    </footer>
  </div>
</body>
</html>