<!--
SPDX-FileCopyrightText: 2021 GNOME Foundation

SPDX-License-Identifier: Apache-2.0 OR GPL-3.0-or-later
-->

<!--
SPDX-FileCopyrightText: 2021 GNOME Foundation

SPDX-License-Identifier: Apache-2.0 OR GPL-3.0-or-later
-->

<!DOCTYPE html>
<html lang="en">
<head>
  <title>ArrowDataset.FileFormat.equal</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="ArrowDataset.FileFormat.equal"/>
  <meta priority="og:description" content="Reference for ArrowDataset.FileFormat.equal"/>
  <meta name="twitter:title" content="ArrowDataset.FileFormat.equal"/>
  <meta name="twitter:description" content="Reference for ArrowDataset.FileFormat.equal"/>


  
  <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">ArrowDataset</a></h3>
        <p>API Version: 1.0</p>
        
        <p>Library Version: 16.0.0</p>
        
      </div>
      
<div class="section">
  <h5>Type</h5>
  <div class="links">
    <a href="class.FileFormat.html">FileFormat</a>
  </div>
</div>
<div class="section">
  <h5>Methods</h5>
  <div class="links">
  
    <a class="method current" href="method.FileFormat.equal.html">equal</a>
  
    <a class="method" href="method.FileFormat.get_default_write_options.html">get_default_write_options</a>
  
    <a class="method" href="method.FileFormat.get_type_name.html">get_type_name</a>
  
    <a class="method" href="method.FileFormat.open_writer.html">open_writer</a>
  
  </div>
</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">ArrowDataset</a><span class="sep"></span><a href="class.FileFormat.html">FileFormat</a><span class="sep"></span>equal</h1>
  </header>

  <section>
    <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-dataset-glib/file-format.h#L85">[src]</a>
        
      </h4>

      <div class="docblock c-decl">
        <pre><code><div class="highlight"><pre><span></span><span class="n">gboolean</span><span class="w"></span>
<span class="n">gadataset_file_format_equal</span><span class="w"> </span><span class="p">(</span><span class="w"></span>
<span class="w">  </span><span class="n">GADatasetFileFormat</span><span class="o">*</span><span class="w"> </span><span class="n">format</span><span class="p">,</span><span class="w"></span>
<span class="w">  </span><span class="n">GADatasetFileFormat</span><span class="o">*</span><span class="w"> </span><span class="n">other_format</span><span class="w"></span>
<span class="p">)</span><span class="w"></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">
        No description available.
      </div>

      <div class="docblock">
        <table>
          
          
          <tr><td>Available since:</td><td>3.0.0</td></tr>
          
          
          
          
          
        </table>
      </div>

      
    </div>

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

      <div class="docblock">
        <table class="arguments">
          
          <tr class="arg-name">
            <td><code>other_format</code></td>
            <td><a href="class.FileFormat.html"><code>GADatasetFileFormat</code></a></td>
          </tr>
          <tr class="arg-description">
            <td>&nbsp;</td>
            <td><p>A <code>GADatasetFileFormat</code> to be&nbsp;compared.</p></td>
          </tr>
          
          
          
          
          
          
          
          <tr><td>&nbsp;</td><td title="transfer: none">The data is owned by the caller of the function.</td></tr>
          
          
          
        </table>
      </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">
        <table class="returns">
          <tr class="arg-name">
            <td>Returns:</td>
            <td><code>gboolean</code></td>
          </tr>
          <tr class="arg-description">
            <td>&nbsp;</td>
            <td><p><code>TRUE</code> if they are the same content file format, <code>FALSE</code> otherwise.</p></td>
          </tr>
          
          
          
          
          
          
        </table>
      </div>
    </div>
    

  </section>
</section>


    

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

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