blob: 7caade7b4d2f9494f17a8ba7b412c49a9944ef15 [file]
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Apache GraphAr C++ Library: src/graphar/status.h Source File</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
<tbody>
<tr style="height: 56px;">
<td id="projectalign" style="padding-left: 0.5em;">
<div id="projectname">Apache GraphAr C++ Library
</div>
<div id="projectbrief">The C++ Library for Apache GraphAr</div>
</td>
</tr>
</tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
initMenu('',true,false,'search.php','Search');
$(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
onmouseover="return searchBox.OnSearchSelectShow()"
onmouseout="return searchBox.OnSearchSelectHide()"
onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>
<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0"
name="MSearchResults" id="MSearchResults">
</iframe>
</div>
<div id="nav-path" class="navpath">
<ul>
<li class="navelem"><a class="el" href="dir_68267d1309a1af8e8297ef4c3efbcdba.html">src</a></li><li class="navelem"><a class="el" href="dir_360ef3ae5e4df5878fa0b8837112e0b7.html">graphar</a></li> </ul>
</div>
</div><!-- top -->
<div class="header">
<div class="headertitle">
<div class="title">status.h</div> </div>
</div><!--header-->
<div class="contents">
<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div>
<div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Licensed to the Apache Software Foundation (ASF) under one</span></div>
<div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> * or more contributor license agreements. See the NOTICE file</span></div>
<div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * distributed with this work for additional information</span></div>
<div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * regarding copyright ownership. The ASF licenses this file</span></div>
<div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * to you under the Apache License, Version 2.0 (the</span></div>
<div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * &quot;License&quot;); you may not use this file except in compliance</span></div>
<div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> * with the License. You may obtain a copy of the License at</span></div>
<div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * http://www.apache.org/licenses/LICENSE-2.0</span></div>
<div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> *</span></div>
<div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * Unless required by applicable law or agreed to in writing,</span></div>
<div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> * software distributed under the License is distributed on an</span></div>
<div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * &quot;AS IS&quot; BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY</span></div>
<div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * KIND, either express or implied. See the License for the</span></div>
<div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> * specific language governing permissions and limitations</span></div>
<div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="comment"> * under the License.</span></div>
<div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="comment"> */</span></div>
<div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div>
<div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#pragma once</span></div>
<div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div>
<div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;sstream&gt;</span></div>
<div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;string&gt;</span></div>
<div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;utility&gt;</span></div>
<div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div>
<div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;graphar/macros.h&quot;</span></div>
<div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div>
<div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#define GAR_RETURN_IF_(condition, status, _) \</span></div>
<div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor"> do { \</span></div>
<div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor"> if (GAR_PREDICT_FALSE(condition)) { \</span></div>
<div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor"> return (status); \</span></div>
<div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor"> } \</span></div>
<div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor"> } while (0)</span></div>
<div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; </div>
<div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#define GAR_RETURN_NOT_OK(status) \</span></div>
<div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor"> do { \</span></div>
<div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor"> ::graphar::Status __s = ::graphar::internal::GenericToStatus(status); \</span></div>
<div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor"> GAR_RETURN_IF_(!__s.ok(), __s, GAR_STRINGIFY(status)); \</span></div>
<div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor"> } while (false)</span></div>
<div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; </div>
<div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="preprocessor">#define RETURN_NOT_ARROW_OK(status) \</span></div>
<div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="preprocessor"> do { \</span></div>
<div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor"> if (GAR_PREDICT_FALSE(!status.ok())) { \</span></div>
<div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor"> return ::graphar::Status::ArrowError(status.ToString()); \</span></div>
<div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor"> } \</span></div>
<div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor"> } while (false)</span></div>
<div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; </div>
<div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#define GAR_RAISE_ERROR_IF_(condition, status, _) \</span></div>
<div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor"> do { \</span></div>
<div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor"> if (GAR_PREDICT_FALSE(condition)) { \</span></div>
<div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor"> throw std::runtime_error(status.message()); \</span></div>
<div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="preprocessor"> } \</span></div>
<div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor"> } while (0)</span></div>
<div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; </div>
<div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#define GAR_RAISE_ERROR_NOT_OK(status) \</span></div>
<div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor"> do { \</span></div>
<div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor"> ::graphar::Status __s = ::graphar::internal::GenericToStatus(status); \</span></div>
<div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor"> GAR_RAISE_ERROR_IF_(!__s.ok(), __s, GAR_STRINGIFY(status)); \</span></div>
<div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="preprocessor"> } while (false)</span></div>
<div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div>
<div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword">namespace </span>graphar::util {</div>
<div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Head&gt;</div>
<div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keywordtype">void</span> StringBuilderRecursive(std::ostringstream&amp; stream, Head&amp;&amp; head) {</div>
<div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; stream &lt;&lt; head;</div>
<div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;}</div>
<div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; </div>
<div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span> Head, <span class="keyword">typename</span>... Tail&gt;</div>
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="keywordtype">void</span> StringBuilderRecursive(std::ostringstream&amp; stream, Head&amp;&amp; head,</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; Tail&amp;&amp;... tail) {</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; StringBuilderRecursive(stream, std::forward&lt;Head&gt;(head));</div>
<div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; StringBuilderRecursive(stream, std::forward&lt;Tail&gt;(tail)...);</div>
<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;}</div>
<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; </div>
<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keyword">template</span> &lt;<span class="keyword">typename</span>... Args&gt;</div>
<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;std::string StringBuilder(Args&amp;&amp;... args) {</div>
<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; std::ostringstream ss;</div>
<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; StringBuilderRecursive(ss, std::forward&lt;Args&gt;(args)...);</div>
<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">return</span> ss.str();</div>
<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;}</div>
<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;} <span class="comment">// namespace graphar::util</span></div>
<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; </div>
<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="keyword">namespace </span>graphar {</div>
<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="keyword">enum class</span> StatusCode : unsigned char {</div>
<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">// success status</span></div>
<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; kOK = 0,</div>
<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="comment">// error status for failed key lookups</span></div>
<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; kKeyError,</div>
<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">// error status for type errors</span></div>
<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; kTypeError,</div>
<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="comment">// error status for invalid data</span></div>
<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; kInvalid,</div>
<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">// error status when an index is out of bounds</span></div>
<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; kIndexError,</div>
<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="comment">// error status for out-of-memory conditions</span></div>
<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; kOutOfMemory,</div>
<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="comment">// error status when some IO-related operation failed</span></div>
<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; kIOError,</div>
<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="comment">// error status when some yaml parse related operation failed</span></div>
<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; kYamlError,</div>
<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="comment">// error status when some arrow-related operation failed</span></div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; kArrowError,</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; </div>
<div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// error status for unknown errors</span></div>
<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; kUnknownError,</div>
<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;};</div>
<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; </div>
<div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="classgraphar_1_1_status.html"> 123</a></span>&#160;<span class="keyword">class </span><a class="code" href="classgraphar_1_1_status.html">Status</a> {</div>
<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">public</span>:</div>
<div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="classgraphar_1_1_status.html#a0a860f829759c387e55e5d72e2253e36"> 126</a></span>&#160; <a class="code" href="classgraphar_1_1_status.html#a0a860f829759c387e55e5d72e2253e36">Status</a>() noexcept : state_(<span class="keywordtype">nullptr</span>) {}</div>
<div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="classgraphar_1_1_status.html#a1a1973d36a87952ccbbb2c09426d3076"> 128</a></span>&#160; <a class="code" href="classgraphar_1_1_status.html#a1a1973d36a87952ccbbb2c09426d3076">~Status</a>() noexcept {</div>
<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">if</span> (state_ != <span class="keyword">nullptr</span>) {</div>
<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; deleteState();</div>
<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div>
<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div>
<div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="classgraphar_1_1_status.html#a003d78f26f5cbad3615e2ee5944b76bb"> 138</a></span>&#160; <a class="code" href="classgraphar_1_1_status.html#a003d78f26f5cbad3615e2ee5944b76bb">Status</a>(StatusCode <a class="code" href="classgraphar_1_1_status.html#ad8afab2740385545877fc6bba2c34636">code</a>, <span class="keyword">const</span> std::string&amp; msg) {</div>
<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; state_ = <span class="keyword">new</span> State;</div>
<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; state_-&gt;code = <a class="code" href="classgraphar_1_1_status.html#ad8afab2740385545877fc6bba2c34636">code</a>;</div>
<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; state_-&gt;msg = msg;</div>
<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div>
<div class="line"><a name="l00144"></a><span class="lineno"><a class="line" href="classgraphar_1_1_status.html#ad2e06c777504a46a8d4dd959aa46f106"> 144</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classgraphar_1_1_status.html#ad2e06c777504a46a8d4dd959aa46f106">Status</a>(<span class="keyword">const</span> <a class="code" href="classgraphar_1_1_status.html">Status</a>&amp; s)</div>
<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; : state_((s.state_ == nullptr) ? nullptr : new State(*s.state_)) {}</div>
<div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="classgraphar_1_1_status.html#adb3d43ca307b4d68ba517de8025b6856"> 147</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classgraphar_1_1_status.html#adb3d43ca307b4d68ba517de8025b6856">Status</a>(<a class="code" href="classgraphar_1_1_status.html">Status</a>&amp;&amp; s) noexcept : state_(s.state_) { s.state_ = <span class="keyword">nullptr</span>; }</div>
<div class="line"><a name="l00149"></a><span class="lineno"><a class="line" href="classgraphar_1_1_status.html#a2a5b813b0a187fcf753a9e14836bc966"> 149</a></span>&#160; <span class="keyword">inline</span> <a class="code" href="classgraphar_1_1_status.html">Status</a>&amp; <a class="code" href="classgraphar_1_1_status.html#a2a5b813b0a187fcf753a9e14836bc966">operator=</a>(<a class="code" href="classgraphar_1_1_status.html">Status</a>&amp;&amp; s) noexcept {</div>
<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">delete</span> state_;</div>
<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; state_ = s.state_;</div>
<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; s.state_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">return</span> *<span class="keyword">this</span>;</div>
<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div>
<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; </div>
<div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="classgraphar_1_1_status.html#ad92f5c41a661d4f468390e39da90f881"> 157</a></span>&#160; <span class="keyword">inline</span> <span class="keyword">static</span> <a class="code" href="classgraphar_1_1_status.html">Status</a> <a class="code" href="classgraphar_1_1_status.html#ad92f5c41a661d4f468390e39da90f881">OK</a>() { <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a0a860f829759c387e55e5d72e2253e36">Status</a>(); }</div>
<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; </div>
<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span>... Args&gt;</div>
<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">static</span> <a class="code" href="classgraphar_1_1_status.html">Status</a> FromArgs(StatusCode <a class="code" href="classgraphar_1_1_status.html#ad8afab2740385545877fc6bba2c34636">code</a>, Args... args) {</div>
<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a0a860f829759c387e55e5d72e2253e36">Status</a>(<a class="code" href="classgraphar_1_1_status.html#ad8afab2740385545877fc6bba2c34636">code</a>, util::StringBuilder(std::forward&lt;Args&gt;(args)...));</div>
<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div>
<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; </div>
<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span>... Args&gt;</div>
<div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="classgraphar_1_1_status.html#af74806ef2e707acc99abc8997361f1e5"> 166</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classgraphar_1_1_status.html">Status</a> <a class="code" href="classgraphar_1_1_status.html#af74806ef2e707acc99abc8997361f1e5">IOError</a>(Args&amp;&amp;... args) {</div>
<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">return</span> Status::FromArgs(StatusCode::kIOError, std::forward&lt;Args&gt;(args)...);</div>
<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div>
<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; </div>
<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span>... Args&gt;</div>
<div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="classgraphar_1_1_status.html#a4ee4924ddadfc2c1effc055572084d71"> 172</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classgraphar_1_1_status.html">Status</a> <a class="code" href="classgraphar_1_1_status.html#a4ee4924ddadfc2c1effc055572084d71">KeyError</a>(Args&amp;&amp;... args) {</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">return</span> Status::FromArgs(StatusCode::kKeyError, std::forward&lt;Args&gt;(args)...);</div>
<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div>
<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; </div>
<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span>... Args&gt;</div>
<div class="line"><a name="l00178"></a><span class="lineno"><a class="line" href="classgraphar_1_1_status.html#a3335cf4bf5cd222d5e29b01fe95e919a"> 178</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classgraphar_1_1_status.html">Status</a> <a class="code" href="classgraphar_1_1_status.html#a3335cf4bf5cd222d5e29b01fe95e919a">TypeError</a>(Args&amp;&amp;... args) {</div>
<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">return</span> Status::FromArgs(StatusCode::kTypeError,</div>
<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; std::forward&lt;Args&gt;(args)...);</div>
<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div>
<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; </div>
<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span>... Args&gt;</div>
<div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f"> 188</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classgraphar_1_1_status.html">Status</a> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Invalid</a>(Args&amp;&amp;... args) {</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">return</span> Status::FromArgs(StatusCode::kInvalid, std::forward&lt;Args&gt;(args)...);</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div>
<div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; </div>
<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span>... Args&gt;</div>
<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classgraphar_1_1_status.html#a1f9b2120c7a6b3e66f9f2e31021df67f"> 197</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classgraphar_1_1_status.html">Status</a> <a class="code" href="classgraphar_1_1_status.html#a1f9b2120c7a6b3e66f9f2e31021df67f">IndexError</a>(Args&amp;&amp;... args) {</div>
<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">return</span> Status::FromArgs(StatusCode::kIndexError,</div>
<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; std::forward&lt;Args&gt;(args)...);</div>
<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; }</div>
<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; </div>
<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span>... Args&gt;</div>
<div class="line"><a name="l00204"></a><span class="lineno"><a class="line" href="classgraphar_1_1_status.html#a358b23c7f34efbf14c84cbc2ddbdd6a4"> 204</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classgraphar_1_1_status.html">Status</a> <a class="code" href="classgraphar_1_1_status.html#a358b23c7f34efbf14c84cbc2ddbdd6a4">YamlError</a>(Args&amp;&amp;... args) {</div>
<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> Status::FromArgs(StatusCode::kYamlError,</div>
<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; std::forward&lt;Args&gt;(args)...);</div>
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; </div>
<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span>... Args&gt;</div>
<div class="line"><a name="l00211"></a><span class="lineno"><a class="line" href="classgraphar_1_1_status.html#a521553014a9f2a6d44f5d71a91a3cb72"> 211</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classgraphar_1_1_status.html">Status</a> <a class="code" href="classgraphar_1_1_status.html#a521553014a9f2a6d44f5d71a91a3cb72">ArrowError</a>(Args&amp;&amp;... args) {</div>
<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> Status::FromArgs(StatusCode::kArrowError,</div>
<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; std::forward&lt;Args&gt;(args)...);</div>
<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; }</div>
<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; </div>
<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keyword">template</span> &lt;<span class="keyword">typename</span>... Args&gt;</div>
<div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="classgraphar_1_1_status.html#a4a45918d3b4f77af5a794fd8f2245ab2"> 218</a></span>&#160; <span class="keyword">static</span> <a class="code" href="classgraphar_1_1_status.html">Status</a> <a class="code" href="classgraphar_1_1_status.html#a4a45918d3b4f77af5a794fd8f2245ab2">UnknownError</a>(Args&amp;&amp;... args) {</div>
<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">return</span> Status::FromArgs(StatusCode::kUnknownError,</div>
<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; std::forward&lt;Args&gt;(args)...);</div>
<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div>
<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; </div>
<div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="classgraphar_1_1_status.html#a401ecb877b8439e3006552f46869e6f0"> 224</a></span>&#160; constexpr <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_status.html#a401ecb877b8439e3006552f46869e6f0">ok</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> (state_ == <span class="keyword">nullptr</span>); }</div>
<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; </div>
<div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="classgraphar_1_1_status.html#a5722c85539ba45817a7f7d57d511bb7c"> 227</a></span>&#160; constexpr <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_status.html#a5722c85539ba45817a7f7d57d511bb7c">IsKeyError</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#ad8afab2740385545877fc6bba2c34636">code</a>() == StatusCode::kKeyError; }</div>
<div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="classgraphar_1_1_status.html#a5655e90a1f657d7e5a12b5217a7eee25"> 229</a></span>&#160; constexpr <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_status.html#a5655e90a1f657d7e5a12b5217a7eee25">IsTypeError</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#ad8afab2740385545877fc6bba2c34636">code</a>() == StatusCode::kTypeError;</div>
<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; }</div>
<div class="line"><a name="l00233"></a><span class="lineno"><a class="line" href="classgraphar_1_1_status.html#a91714dda07e087535605998d815d9240"> 233</a></span>&#160; constexpr <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_status.html#a91714dda07e087535605998d815d9240">IsInvalid</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#ad8afab2740385545877fc6bba2c34636">code</a>() == StatusCode::kInvalid; }</div>
<div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="classgraphar_1_1_status.html#ad0d090660a9e71c3e19b3c1739b98f68"> 235</a></span>&#160; constexpr <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_status.html#ad0d090660a9e71c3e19b3c1739b98f68">IsIndexError</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#ad8afab2740385545877fc6bba2c34636">code</a>() == StatusCode::kIndexError;</div>
<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; }</div>
<div class="line"><a name="l00239"></a><span class="lineno"><a class="line" href="classgraphar_1_1_status.html#aa42e3449fecbebb29bff9e59bb83fcce"> 239</a></span>&#160; constexpr <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_status.html#aa42e3449fecbebb29bff9e59bb83fcce">IsYamlError</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#ad8afab2740385545877fc6bba2c34636">code</a>() == StatusCode::kYamlError;</div>
<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; }</div>
<div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="classgraphar_1_1_status.html#a7faef0c9213acb06dd3e249a8d75f43d"> 243</a></span>&#160; constexpr <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_status.html#a7faef0c9213acb06dd3e249a8d75f43d">IsArrowError</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#ad8afab2740385545877fc6bba2c34636">code</a>() == StatusCode::kArrowError;</div>
<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div>
<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; </div>
<div class="line"><a name="l00248"></a><span class="lineno"><a class="line" href="classgraphar_1_1_status.html#ad8afab2740385545877fc6bba2c34636"> 248</a></span>&#160; constexpr StatusCode <a class="code" href="classgraphar_1_1_status.html#ad8afab2740385545877fc6bba2c34636">code</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a401ecb877b8439e3006552f46869e6f0">ok</a>() ? StatusCode::kOK : state_-&gt;code;</div>
<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; }</div>
<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; </div>
<div class="line"><a name="l00253"></a><span class="lineno"><a class="line" href="classgraphar_1_1_status.html#a11279464d73e7362db85e08935546022"> 253</a></span>&#160; <span class="keyword">const</span> std::string&amp; <a class="code" href="classgraphar_1_1_status.html#a11279464d73e7362db85e08935546022">message</a>()<span class="keyword"> const </span>{</div>
<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keyword">static</span> <span class="keyword">const</span> std::string no_message = <span class="stringliteral">&quot;&quot;</span>;</div>
<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a401ecb877b8439e3006552f46869e6f0">ok</a>() ? no_message : state_-&gt;msg;</div>
<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; }</div>
<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; </div>
<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keyword">private</span>:</div>
<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordtype">void</span> deleteState() {</div>
<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keyword">delete</span> state_;</div>
<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; state_ = <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; }</div>
<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; </div>
<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keyword">struct </span>State {</div>
<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; StatusCode <a class="code" href="classgraphar_1_1_status.html#ad8afab2740385545877fc6bba2c34636">code</a>;</div>
<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; std::string msg;</div>
<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; };</div>
<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; State* state_;</div>
<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;};</div>
<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; </div>
<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;} <span class="comment">// namespace graphar</span></div>
<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; </div>
<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;<span class="keyword">namespace </span>graphar::internal {</div>
<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; </div>
<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="comment">// Extract Status from Status or Result&lt;T&gt;</span></div>
<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="comment">// Useful for the status check macros such as RETURN_NOT_OK.</span></div>
<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="keyword">inline</span> <span class="keyword">const</span> Status&amp; GenericToStatus(<span class="keyword">const</span> Status&amp; st) { <span class="keywordflow">return</span> st; }</div>
<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="keyword">inline</span> Status GenericToStatus(Status&amp;&amp; st) { <span class="keywordflow">return</span> std::move(st); }</div>
<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; </div>
<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;} <span class="comment">// namespace graphar::internal</span></div>
<div class="ttc" id="aclassgraphar_1_1_status_html"><div class="ttname"><a href="classgraphar_1_1_status.html">graphar::Status</a></div><div class="ttdoc">Status outcome object (success or error)</div><div class="ttdef"><b>Definition:</b> <a href="status_8h_source.html#l00123">status.h:123</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_status_html_a003d78f26f5cbad3615e2ee5944b76bb"><div class="ttname"><a href="classgraphar_1_1_status.html#a003d78f26f5cbad3615e2ee5944b76bb">graphar::Status::Status</a></div><div class="ttdeci">Status(StatusCode code, const std::string &amp;msg)</div><div class="ttdoc">Constructs a status with the specified error code and message.</div><div class="ttdef"><b>Definition:</b> <a href="status_8h_source.html#l00138">status.h:138</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_status_html_a0a860f829759c387e55e5d72e2253e36"><div class="ttname"><a href="classgraphar_1_1_status.html#a0a860f829759c387e55e5d72e2253e36">graphar::Status::Status</a></div><div class="ttdeci">Status() noexcept</div><div class="ttdef"><b>Definition:</b> <a href="status_8h_source.html#l00126">status.h:126</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_status_html_a11279464d73e7362db85e08935546022"><div class="ttname"><a href="classgraphar_1_1_status.html#a11279464d73e7362db85e08935546022">graphar::Status::message</a></div><div class="ttdeci">const std::string &amp; message() const</div><div class="ttdef"><b>Definition:</b> <a href="status_8h_source.html#l00253">status.h:253</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_status_html_a1a1973d36a87952ccbbb2c09426d3076"><div class="ttname"><a href="classgraphar_1_1_status.html#a1a1973d36a87952ccbbb2c09426d3076">graphar::Status::~Status</a></div><div class="ttdeci">~Status() noexcept</div><div class="ttdef"><b>Definition:</b> <a href="status_8h_source.html#l00128">status.h:128</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_status_html_a1f9b2120c7a6b3e66f9f2e31021df67f"><div class="ttname"><a href="classgraphar_1_1_status.html#a1f9b2120c7a6b3e66f9f2e31021df67f">graphar::Status::IndexError</a></div><div class="ttdeci">static Status IndexError(Args &amp;&amp;... args)</div><div class="ttdef"><b>Definition:</b> <a href="status_8h_source.html#l00197">status.h:197</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_status_html_a2a5b813b0a187fcf753a9e14836bc966"><div class="ttname"><a href="classgraphar_1_1_status.html#a2a5b813b0a187fcf753a9e14836bc966">graphar::Status::operator=</a></div><div class="ttdeci">Status &amp; operator=(Status &amp;&amp;s) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="status_8h_source.html#l00149">status.h:149</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_status_html_a3335cf4bf5cd222d5e29b01fe95e919a"><div class="ttname"><a href="classgraphar_1_1_status.html#a3335cf4bf5cd222d5e29b01fe95e919a">graphar::Status::TypeError</a></div><div class="ttdeci">static Status TypeError(Args &amp;&amp;... args)</div><div class="ttdef"><b>Definition:</b> <a href="status_8h_source.html#l00178">status.h:178</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_status_html_a358b23c7f34efbf14c84cbc2ddbdd6a4"><div class="ttname"><a href="classgraphar_1_1_status.html#a358b23c7f34efbf14c84cbc2ddbdd6a4">graphar::Status::YamlError</a></div><div class="ttdeci">static Status YamlError(Args &amp;&amp;... args)</div><div class="ttdef"><b>Definition:</b> <a href="status_8h_source.html#l00204">status.h:204</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_status_html_a401ecb877b8439e3006552f46869e6f0"><div class="ttname"><a href="classgraphar_1_1_status.html#a401ecb877b8439e3006552f46869e6f0">graphar::Status::ok</a></div><div class="ttdeci">constexpr bool ok() const</div><div class="ttdef"><b>Definition:</b> <a href="status_8h_source.html#l00224">status.h:224</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_status_html_a4a45918d3b4f77af5a794fd8f2245ab2"><div class="ttname"><a href="classgraphar_1_1_status.html#a4a45918d3b4f77af5a794fd8f2245ab2">graphar::Status::UnknownError</a></div><div class="ttdeci">static Status UnknownError(Args &amp;&amp;... args)</div><div class="ttdef"><b>Definition:</b> <a href="status_8h_source.html#l00218">status.h:218</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_status_html_a4ee4924ddadfc2c1effc055572084d71"><div class="ttname"><a href="classgraphar_1_1_status.html#a4ee4924ddadfc2c1effc055572084d71">graphar::Status::KeyError</a></div><div class="ttdeci">static Status KeyError(Args &amp;&amp;... args)</div><div class="ttdef"><b>Definition:</b> <a href="status_8h_source.html#l00172">status.h:172</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_status_html_a521553014a9f2a6d44f5d71a91a3cb72"><div class="ttname"><a href="classgraphar_1_1_status.html#a521553014a9f2a6d44f5d71a91a3cb72">graphar::Status::ArrowError</a></div><div class="ttdeci">static Status ArrowError(Args &amp;&amp;... args)</div><div class="ttdef"><b>Definition:</b> <a href="status_8h_source.html#l00211">status.h:211</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_status_html_a5655e90a1f657d7e5a12b5217a7eee25"><div class="ttname"><a href="classgraphar_1_1_status.html#a5655e90a1f657d7e5a12b5217a7eee25">graphar::Status::IsTypeError</a></div><div class="ttdeci">constexpr bool IsTypeError() const</div><div class="ttdef"><b>Definition:</b> <a href="status_8h_source.html#l00229">status.h:229</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_status_html_a5722c85539ba45817a7f7d57d511bb7c"><div class="ttname"><a href="classgraphar_1_1_status.html#a5722c85539ba45817a7f7d57d511bb7c">graphar::Status::IsKeyError</a></div><div class="ttdeci">constexpr bool IsKeyError() const</div><div class="ttdef"><b>Definition:</b> <a href="status_8h_source.html#l00227">status.h:227</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_status_html_a7faef0c9213acb06dd3e249a8d75f43d"><div class="ttname"><a href="classgraphar_1_1_status.html#a7faef0c9213acb06dd3e249a8d75f43d">graphar::Status::IsArrowError</a></div><div class="ttdeci">constexpr bool IsArrowError() const</div><div class="ttdef"><b>Definition:</b> <a href="status_8h_source.html#l00243">status.h:243</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_status_html_a91714dda07e087535605998d815d9240"><div class="ttname"><a href="classgraphar_1_1_status.html#a91714dda07e087535605998d815d9240">graphar::Status::IsInvalid</a></div><div class="ttdeci">constexpr bool IsInvalid() const</div><div class="ttdef"><b>Definition:</b> <a href="status_8h_source.html#l00233">status.h:233</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_status_html_a9ca4be37aae8dfea7e6ef54920e0073f"><div class="ttname"><a href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">graphar::Status::Invalid</a></div><div class="ttdeci">static Status Invalid(Args &amp;&amp;... args)</div><div class="ttdef"><b>Definition:</b> <a href="status_8h_source.html#l00188">status.h:188</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_status_html_aa42e3449fecbebb29bff9e59bb83fcce"><div class="ttname"><a href="classgraphar_1_1_status.html#aa42e3449fecbebb29bff9e59bb83fcce">graphar::Status::IsYamlError</a></div><div class="ttdeci">constexpr bool IsYamlError() const</div><div class="ttdef"><b>Definition:</b> <a href="status_8h_source.html#l00239">status.h:239</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_status_html_ad0d090660a9e71c3e19b3c1739b98f68"><div class="ttname"><a href="classgraphar_1_1_status.html#ad0d090660a9e71c3e19b3c1739b98f68">graphar::Status::IsIndexError</a></div><div class="ttdeci">constexpr bool IsIndexError() const</div><div class="ttdef"><b>Definition:</b> <a href="status_8h_source.html#l00235">status.h:235</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_status_html_ad2e06c777504a46a8d4dd959aa46f106"><div class="ttname"><a href="classgraphar_1_1_status.html#ad2e06c777504a46a8d4dd959aa46f106">graphar::Status::Status</a></div><div class="ttdeci">Status(const Status &amp;s)</div><div class="ttdef"><b>Definition:</b> <a href="status_8h_source.html#l00144">status.h:144</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_status_html_ad8afab2740385545877fc6bba2c34636"><div class="ttname"><a href="classgraphar_1_1_status.html#ad8afab2740385545877fc6bba2c34636">graphar::Status::code</a></div><div class="ttdeci">constexpr StatusCode code() const</div><div class="ttdef"><b>Definition:</b> <a href="status_8h_source.html#l00248">status.h:248</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_status_html_ad92f5c41a661d4f468390e39da90f881"><div class="ttname"><a href="classgraphar_1_1_status.html#ad92f5c41a661d4f468390e39da90f881">graphar::Status::OK</a></div><div class="ttdeci">static Status OK()</div><div class="ttdef"><b>Definition:</b> <a href="status_8h_source.html#l00157">status.h:157</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_status_html_adb3d43ca307b4d68ba517de8025b6856"><div class="ttname"><a href="classgraphar_1_1_status.html#adb3d43ca307b4d68ba517de8025b6856">graphar::Status::Status</a></div><div class="ttdeci">Status(Status &amp;&amp;s) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="status_8h_source.html#l00147">status.h:147</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_status_html_af74806ef2e707acc99abc8997361f1e5"><div class="ttname"><a href="classgraphar_1_1_status.html#af74806ef2e707acc99abc8997361f1e5">graphar::Status::IOError</a></div><div class="ttdeci">static Status IOError(Args &amp;&amp;... args)</div><div class="ttdef"><b>Definition:</b> <a href="status_8h_source.html#l00166">status.h:166</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!--
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.
-->
<!-- disclaimer_footer.html -->
<footer style="text-align: center; font-size: 12px;">
<div>
<p>
Apache GraphAr is an effort undergoing incubation at The Apache Software Foundation (ASF), sponsored by the Apache Incubator. Incubation is required of all newly accepted projects until a further review indicates that the infrastructure, communications, and decision making process have stabilized in a manner consistent with other successful ASF projects. While incubation status is not necessarily a reflection of the completeness or stability of the code, it does indicate that the project has yet to be fully endorsed by the ASF.
</p>
<p>
Copyright © 2024 The Apache Software Foundation, Licensed under the Apache License, Version 2.0. <br/>
Apache, the names of Apache projects, and the feather logo are either registered trademarks or trademarks of the Apache Software Foundation in the United States and/or other countries.
</p>
</div>
</footer>