You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@graphar.apache.org by gi...@apache.org on 2025/10/14 07:40:01 UTC
(incubator-graphar-website) branch asf-site updated: deploy: 82806c5f19bb926892acd50dd853c0007031cc91
This is an automated email from the ASF dual-hosted git repository.
github-bot pushed a commit to branch asf-site
in repository https://gitbox.apache.org/repos/asf/incubator-graphar-website.git
The following commit(s) were added to refs/heads/asf-site by this push:
new 3366e0b deploy: 82806c5f19bb926892acd50dd853c0007031cc91
3366e0b is described below
commit 3366e0bd590d352adfc823c6a67f37aa45c60bb2
Author: yangxk1 <ya...@users.noreply.github.com>
AuthorDate: Tue Oct 14 07:39:56 2025 +0000
deploy: 82806c5f19bb926892acd50dd853c0007031cc91
---
404.html | 2 +-
assets/js/e9c63600.2a89b78c.js | 1 +
assets/js/e9c63600.c3b835c3.js | 1 -
...e~main.a1bcbcd5.js => runtime~main.d09f585f.js} | 2 +-
blog/archive/index.html | 2 +-
blog/demo-blog-post/index.html | 2 +-
blog/graphs-openlakehouse/index.html | 2 +-
blog/index.html | 2 +-
blog/tags/graphar/index.html | 2 +-
blog/tags/graphframes/index.html | 2 +-
blog/tags/index.html | 2 +-
blog/tags/kuzu/index.html | 2 +-
blog/tags/lakehouse/index.html | 2 +-
community/category/committers/index.html | 2 +-
community/category/reference/index.html | 2 +-
.../committers/nominating-a-committer/index.html | 2 +-
.../reference/generate_release_note/index.html | 2 +-
community/committers/release/index.html | 2 +-
community/committers/verify/index.html | 2 +-
community/development/index.html | 2 +-
community/how-to-become-a-committer/index.html | 2 +-
community/index.html | 2 +-
docs/category/c-library/index.html | 2 +-
docs/category/examples/index.html | 2 +-
docs/category/libraries/index.html | 2 +-
docs/category/specification/index.html | 2 +-
docs/cpp/classgraphar_1_1_adjacent_list.html | 4 +-
docs/cpp/classgraphar_1_1_edge_info-members.html | 2 +
docs/cpp/classgraphar_1_1_edge_info.html | 130 +-
docs/cpp/classgraphar_1_1_edge_info_1_1_impl.html | 2 +-
docs/cpp/classgraphar_1_1_graph_info-members.html | 2 +
docs/cpp/classgraphar_1_1_graph_info.html | 104 +-
docs/cpp/classgraphar_1_1_graph_info_1_1_impl.html | 2 +-
docs/cpp/classgraphar_1_1_property_group.html | 6 +-
docs/cpp/classgraphar_1_1_vertex_info-members.html | 9 +-
docs/cpp/classgraphar_1_1_vertex_info.html | 80 +-
.../cpp/classgraphar_1_1_vertex_info_1_1_impl.html | 2 +-
docs/cpp/functions_func_r.html | 13 +
docs/cpp/functions_r.html | 13 +
docs/cpp/graph__info_8cc_source.html | 2889 ++++++++++----------
docs/cpp/graph__info_8h_source.html | 616 +++--
docs/cpp/graph__reader_8h_source.html | 2 +-
docs/cpp/search/all_10.js | 30 +-
docs/cpp/search/all_11.js | 10 +-
docs/cpp/search/all_12.js | 8 +-
docs/cpp/search/all_13.js | 30 +-
docs/cpp/search/all_14.js | 30 +-
docs/cpp/search/all_15.js | 4 +-
docs/cpp/search/all_16.js | 2 +-
docs/cpp/search/all_f.js | 6 +-
docs/cpp/search/classes_0.js | 18 +-
docs/cpp/search/classes_1.js | 4 +-
docs/cpp/search/classes_2.js | 4 +-
docs/cpp/search/classes_3.js | 42 +-
docs/cpp/search/classes_4.js | 4 +-
docs/cpp/search/classes_5.js | 4 +-
docs/cpp/search/classes_6.js | 8 +-
docs/cpp/search/classes_7.js | 6 +-
docs/cpp/search/classes_8.js | 6 +-
docs/cpp/search/classes_9.js | 2 +-
docs/cpp/search/classes_a.js | 4 +-
docs/cpp/search/classes_b.js | 4 +-
docs/cpp/search/classes_c.js | 22 +-
docs/cpp/search/classes_d.js | 2 +-
docs/cpp/search/classes_e.js | 2 +-
docs/cpp/search/functions_0.js | 26 +-
docs/cpp/search/functions_1.js | 2 +-
docs/cpp/search/functions_10.js | 30 +-
docs/cpp/search/functions_11.js | 6 +-
docs/cpp/search/functions_12.js | 8 +-
docs/cpp/search/functions_13.js | 26 +-
docs/cpp/search/functions_14.js | 28 +-
docs/cpp/search/functions_15.js | 2 +-
docs/cpp/search/functions_16.js | 2 +-
docs/cpp/search/functions_2.js | 12 +-
docs/cpp/search/functions_3.js | 4 +-
docs/cpp/search/functions_4.js | 20 +-
docs/cpp/search/functions_5.js | 16 +-
docs/cpp/search/functions_6.js | 102 +-
docs/cpp/search/functions_7.js | 8 +-
docs/cpp/search/functions_8.js | 34 +-
docs/cpp/search/functions_9.js | 2 +-
docs/cpp/search/functions_a.js | 6 +-
docs/cpp/search/functions_b.js | 8 +-
docs/cpp/search/functions_c.js | 6 +-
docs/cpp/search/functions_d.js | 22 +-
docs/cpp/search/functions_e.js | 8 +-
docs/cpp/search/functions_f.js | 8 +-
docs/cpp/search/pages_0.js | 2 +-
docs/index.html | 2 +-
docs/java-ffi/member-search-index.zip | Bin 5394 -> 5394 bytes
docs/java-ffi/package-search-index.zip | Bin 310 -> 310 bytes
docs/java-ffi/type-search-index.zip | Bin 825 -> 825 bytes
docs/java-info/member-search-index.zip | Bin 3142 -> 3142 bytes
docs/java-info/package-search-index.zip | Bin 281 -> 281 bytes
docs/java-info/type-search-index.zip | Bin 484 -> 484 bytes
docs/libraries/cpp/examples/bgl/index.html | 2 +-
docs/libraries/cpp/examples/graphscope/index.html | 2 +-
docs/libraries/cpp/examples/out-of-core/index.html | 2 +-
.../cpp/examples/snap-to-graphar/index.html | 2 +-
docs/libraries/cpp/getting-started/index.html | 2 +-
docs/libraries/java/index.html | 2 +-
.../libraries/java/info/getting-started/index.html | 2 +-
.../java/java-FFI/getting-started/index.html | 2 +-
.../java-FFI/how_to_develop_java_ffi/index.html | 2 +-
docs/libraries/pyspark/how-to/index.html | 2 +-
docs/libraries/pyspark/index.html | 2 +-
docs/libraries/spark/examples/index.html | 2 +-
docs/libraries/spark/index.html | 2 +-
docs/overview/concepts/index.html | 2 +-
docs/overview/index.html | 2 +-
docs/overview/motivation/index.html | 2 +-
docs/specification/format/index.html | 2 +-
.../specification/implementation-status/index.html | 10 +-
download/index.html | 2 +-
index.html | 2 +-
116 files changed, 2476 insertions(+), 2140 deletions(-)
diff --git a/404.html b/404.html
index 5fb6a1e..ee27d0b 100644
--- a/404.html
+++ b/404.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Page Not Found | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/404.ht [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/assets/js/e9c63600.2a89b78c.js b/assets/js/e9c63600.2a89b78c.js
new file mode 100644
index 0000000..0af60e5
--- /dev/null
+++ b/assets/js/e9c63600.2a89b78c.js
@@ -0,0 +1 @@
+"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[8268],{3844:(d,e,t)=>{t.r(e),t.d(e,{assets:()=>l,contentTitle:()=>n,default:()=>j,frontMatter:()=>i,metadata:()=>h,toc:()=>c});var r=t(1527),s=t(395);const i={title:"Implementation Status",sidebar_position:2},n=void 0,h={id:"specification/implementation-status",title:"Implementation Status",description:"The following tables summarize the features available in the various official G [...]
\ No newline at end of file
diff --git a/assets/js/e9c63600.c3b835c3.js b/assets/js/e9c63600.c3b835c3.js
deleted file mode 100644
index 1019287..0000000
--- a/assets/js/e9c63600.c3b835c3.js
+++ /dev/null
@@ -1 +0,0 @@
-"use strict";(self.webpackChunkapache_website_template=self.webpackChunkapache_website_template||[]).push([[8268],{3844:(d,e,t)=>{t.r(e),t.d(e,{assets:()=>l,contentTitle:()=>n,default:()=>j,frontMatter:()=>i,metadata:()=>h,toc:()=>c});var s=t(1527),r=t(395);const i={title:"Implementation Status",sidebar_position:2},n=void 0,h={id:"specification/implementation-status",title:"Implementation Status",description:"The following tables summarize the features available in the various official G [...]
\ No newline at end of file
diff --git a/assets/js/runtime~main.a1bcbcd5.js b/assets/js/runtime~main.d09f585f.js
similarity index 98%
rename from assets/js/runtime~main.a1bcbcd5.js
rename to assets/js/runtime~main.d09f585f.js
index 90c24e8..6e77254 100644
--- a/assets/js/runtime~main.a1bcbcd5.js
+++ b/assets/js/runtime~main.d09f585f.js
@@ -1 +1 @@
-(()=>{"use strict";var e,a,c,d,f,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={exports:{}};return b[e].call(c.exports,c,c.exports,r),c.exports}r.m=b,e=[],r.O=(a,c,d,f)=>{if(!c){var b=1/0;for(i=0;i<e.length;i++){c=e[i][0],d=e[i][1],f=e[i][2];for(var t=!0,o=0;o<c.length;o++)(!1&f||b>=f)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,f<b&&(b=f));if(t){e.splice(i--,1);var n=d();void 0!==n&&(a=n)}}return a}f=f||0;for(var i=e.length;i>0&&e[i-1] [...]
\ No newline at end of file
+(()=>{"use strict";var e,a,c,d,f,b={},t={};function r(e){var a=t[e];if(void 0!==a)return a.exports;var c=t[e]={exports:{}};return b[e].call(c.exports,c,c.exports,r),c.exports}r.m=b,e=[],r.O=(a,c,d,f)=>{if(!c){var b=1/0;for(i=0;i<e.length;i++){c=e[i][0],d=e[i][1],f=e[i][2];for(var t=!0,o=0;o<c.length;o++)(!1&f||b>=f)&&Object.keys(r.O).every((e=>r.O[e](c[o])))?c.splice(o--,1):(t=!1,f<b&&(b=f));if(t){e.splice(i--,1);var n=d();void 0!==n&&(a=n)}}return a}f=f||0;for(var i=e.length;i>0&&e[i-1] [...]
\ No newline at end of file
diff --git a/blog/archive/index.html b/blog/archive/index.html
index d3bfd45..61f5577 100644
--- a/blog/archive/index.html
+++ b/blog/archive/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Archive | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/blog/archive" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/blog/demo-blog-post/index.html b/blog/demo-blog-post/index.html
index abb180a..35473e0 100644
--- a/blog/demo-blog-post/index.html
+++ b/blog/demo-blog-post/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Welcome to GraphAr | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/bl [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/blog/graphs-openlakehouse/index.html b/blog/graphs-openlakehouse/index.html
index 5f008a6..24b74bc 100644
--- a/blog/graphs-openlakehouse/index.html
+++ b/blog/graphs-openlakehouse/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Dreaming of Graphs in the Open Lakehouse | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/blog/graphs-openlakehouse"><meta data-rh="true" property="og:locale" content="en"><meta data-rh="true" name="docusaurus_locale" content="en"><meta data-rh="true" name="docusauru [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/blog/index.html b/blog/index.html
index 8ea81d8..b6bedc4 100644
--- a/blog/index.html
+++ b/blog/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Blog | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/blog"><meta data [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/blog/tags/graphar/index.html b/blog/tags/graphar/index.html
index 2ee0194..7890353 100644
--- a/blog/tags/graphar/index.html
+++ b/blog/tags/graphar/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">2 posts tagged with "graphar" | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https:// [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/blog/tags/graphframes/index.html b/blog/tags/graphframes/index.html
index e694e06..eb82d6f 100644
--- a/blog/tags/graphframes/index.html
+++ b/blog/tags/graphframes/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">One post tagged with "graphframes" | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="htt [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/blog/tags/index.html b/blog/tags/index.html
index ed69cb2..9b18b35 100644
--- a/blog/tags/index.html
+++ b/blog/tags/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Tags | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/blog/tags"><meta [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/blog/tags/kuzu/index.html b/blog/tags/kuzu/index.html
index 3a304f4..98f8655 100644
--- a/blog/tags/kuzu/index.html
+++ b/blog/tags/kuzu/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">One post tagged with "kuzu" | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://gr [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/blog/tags/lakehouse/index.html b/blog/tags/lakehouse/index.html
index 414da70..6f9876d 100644
--- a/blog/tags/lakehouse/index.html
+++ b/blog/tags/lakehouse/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">One post tagged with "lakehouse" | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/community/category/committers/index.html b/community/category/committers/index.html
index 9f83a57..eae5b18 100644
--- a/community/category/committers/index.html
+++ b/community/category/committers/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Committers | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/community/ [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/community/category/reference/index.html b/community/category/reference/index.html
index 00641fb..5a38712 100644
--- a/community/category/reference/index.html
+++ b/community/category/reference/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Reference | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/community/c [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/community/committers/nominating-a-committer/index.html b/community/committers/nominating-a-committer/index.html
index e8aafd8..41c2369 100644
--- a/community/committers/nominating-a-committer/index.html
+++ b/community/committers/nominating-a-committer/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Nominating a Committer and PPMC member | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://g [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/community/committers/reference/generate_release_note/index.html b/community/committers/reference/generate_release_note/index.html
index 990ce20..acf3b79 100644
--- a/community/committers/reference/generate_release_note/index.html
+++ b/community/committers/reference/generate_release_note/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Generate release note | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/community/committers/release/index.html b/community/committers/release/index.html
index 6c18e97..e09b4c3 100644
--- a/community/committers/release/index.html
+++ b/community/committers/release/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Create a release | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/comm [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/community/committers/verify/index.html b/community/committers/verify/index.html
index 073ef97..e13fe5b 100644
--- a/community/committers/verify/index.html
+++ b/community/committers/verify/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Verify a candidate version | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apach [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/community/development/index.html b/community/development/index.html
index 558ac21..9f51da7 100644
--- a/community/development/index.html
+++ b/community/development/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Development | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/community [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/community/how-to-become-a-committer/index.html b/community/how-to-become-a-committer/index.html
index e0b6873..e35425e 100644
--- a/community/how-to-become-a-committer/index.html
+++ b/community/how-to-become-a-committer/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">How to Become a Committer or PPMC member | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https:/ [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/community/index.html b/community/index.html
index 6b16f9d..cfb964b 100644
--- a/community/index.html
+++ b/community/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Community | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/community/" [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/docs/category/c-library/index.html b/docs/category/c-library/index.html
index 24af0b8..f5ef29b 100644
--- a/docs/category/c-library/index.html
+++ b/docs/category/c-library/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">C++ Library | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/cate [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/docs/category/examples/index.html b/docs/category/examples/index.html
index 6182045..13bcbb7 100644
--- a/docs/category/examples/index.html
+++ b/docs/category/examples/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Examples | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/categor [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/docs/category/libraries/index.html b/docs/category/libraries/index.html
index 2ad88a7..57cecda 100644
--- a/docs/category/libraries/index.html
+++ b/docs/category/libraries/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Libraries | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/catego [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/docs/category/specification/index.html b/docs/category/specification/index.html
index 043d161..9999c12 100644
--- a/docs/category/specification/index.html
+++ b/docs/category/specification/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Specification | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/ca [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/docs/cpp/classgraphar_1_1_adjacent_list.html b/docs/cpp/classgraphar_1_1_adjacent_list.html
index efd1a3d..b2941ad 100644
--- a/docs/cpp/classgraphar_1_1_adjacent_list.html
+++ b/docs/cpp/classgraphar_1_1_adjacent_list.html
@@ -146,7 +146,7 @@ Public Member Functions</h2></td></tr>
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00168">168</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00183">183</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -258,7 +258,7 @@ Public Member Functions</h2></td></tr>
<p>Returns whether the adjacent list is validated.</p>
<dl class="section return"><dt>Returns</dt><dd>True if the adjacent list is valid, False otherwise. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00176">176</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00191">191</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
diff --git a/docs/cpp/classgraphar_1_1_edge_info-members.html b/docs/cpp/classgraphar_1_1_edge_info-members.html
index 28cf708..1b79a66 100644
--- a/docs/cpp/classgraphar_1_1_edge_info-members.html
+++ b/docs/cpp/classgraphar_1_1_edge_info-members.html
@@ -107,6 +107,8 @@ $(function() {
<tr><td class="entry"><a class="el" href="classgraphar_1_1_edge_info.html#a0ac67e1cf3b3fa79b6fcbc054869d0e5">Load</a>(std::shared_ptr< Yaml > yaml)</td><td class="entry"><a class="el" href="classgraphar_1_1_edge_info.html">graphar::EdgeInfo</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classgraphar_1_1_edge_info.html#a5840f6d36ba8e8dab30c1f89534a7edf">Load</a>(const std::string &input)</td><td class="entry"><a class="el" href="classgraphar_1_1_edge_info.html">graphar::EdgeInfo</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classgraphar_1_1_edge_info.html#aee914f2c4adf773c048daed0e93dbe32">PropertyGroupNum</a>() const</td><td class="entry"><a class="el" href="classgraphar_1_1_edge_info.html">graphar::EdgeInfo</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classgraphar_1_1_edge_info.html#a7db36496a4cf0eb517b463de5caa125f">RemoveAdjacentList</a>(std::shared_ptr< AdjacentList > adj_list) const</td><td class="entry"><a class="el" href="classgraphar_1_1_edge_info.html">graphar::EdgeInfo</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classgraphar_1_1_edge_info.html#a264853429b84060bbe36c671d5bc8963">RemovePropertyGroup</a>(std::shared_ptr< PropertyGroup > property_group) const</td><td class="entry"><a class="el" href="classgraphar_1_1_edge_info.html">graphar::EdgeInfo</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classgraphar_1_1_edge_info.html#a1e95f986bd8c5191f438705b195191e3">Save</a>(const std::string &file_name) const</td><td class="entry"><a class="el" href="classgraphar_1_1_edge_info.html">graphar::EdgeInfo</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classgraphar_1_1_edge_info.html#a9440bef05f4fa689662f26a9ef0117c1">version</a>() const</td><td class="entry"><a class="el" href="classgraphar_1_1_edge_info.html">graphar::EdgeInfo</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~EdgeInfo</b>() (defined in <a class="el" href="classgraphar_1_1_edge_info.html">graphar::EdgeInfo</a>)</td><td class="entry"><a class="el" href="classgraphar_1_1_edge_info.html">graphar::EdgeInfo</a></td><td class="entry"></td></tr>
diff --git a/docs/cpp/classgraphar_1_1_edge_info.html b/docs/cpp/classgraphar_1_1_edge_info.html
index f9e688a..e5a443c 100644
--- a/docs/cpp/classgraphar_1_1_edge_info.html
+++ b/docs/cpp/classgraphar_1_1_edge_info.html
@@ -93,8 +93,14 @@ Public Member Functions</h2></td></tr>
<tr class="separator:ab3c32f3112dcf08304676eeb95545b55"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a6e5b4fdc98d8399564396fb63955c62a"><td class="memItemLeft" align="right" valign="top">Result< std::shared_ptr< <a class="el" href="classgraphar_1_1_edge_info.html">EdgeInfo</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classgraphar_1_1_edge_info.html#a6e5b4fdc98d8399564396fb63955c62a">AddAdjacentList</a> (std::shared_ptr< <a class="el" href="classgraphar_1_1_adjacent_list.html">AdjacentList</a> > adj_list) const</td></tr>
<tr class="separator:a6e5b4fdc98d8399564396fb63955c62a"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a7db36496a4cf0eb517b463de5caa125f"><td class="memItemLeft" align="right" valign="top">Result< std::shared_ptr< <a class="el" href="classgraphar_1_1_edge_info.html">EdgeInfo</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classgraphar_1_1_edge_info.html#a7db36496a4cf0eb517b463de5caa125f">RemoveAdjacentList</a> (std::shared_ptr< <a class="el" href="classgraphar_1_1_adjacent_list.html">AdjacentList</a> > adj_list) const</td></tr>
+<tr class="memdesc:a7db36496a4cf0eb517b463de5caa125f"><td class="mdescLeft"> </td><td class="mdescRight">Removes an adjacency list from the <a class="el" href="classgraphar_1_1_edge_info.html" title="EdgeInfo is a class to describe the edge information, including the source vertex type,...">EdgeInfo</a> instance and returns a new <a class="el" href="classgraphar_1_1_edge_info.html" title="EdgeInfo is a class to describe the edge information, including the source vertex type,...">Edg [...]
+<tr class="separator:a7db36496a4cf0eb517b463de5caa125f"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a9620f838addfdcb892b30e80e2cc4239"><td class="memItemLeft" align="right" valign="top">Result< std::shared_ptr< <a class="el" href="classgraphar_1_1_edge_info.html">EdgeInfo</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classgraphar_1_1_edge_info.html#a9620f838addfdcb892b30e80e2cc4239">AddPropertyGroup</a> (std::shared_ptr< <a class="el" href="classgraphar_1_1_property_group.html">PropertyGroup</a> > property_group) con [...]
<tr class="separator:a9620f838addfdcb892b30e80e2cc4239"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a264853429b84060bbe36c671d5bc8963"><td class="memItemLeft" align="right" valign="top">Result< std::shared_ptr< <a class="el" href="classgraphar_1_1_edge_info.html">EdgeInfo</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classgraphar_1_1_edge_info.html#a264853429b84060bbe36c671d5bc8963">RemovePropertyGroup</a> (std::shared_ptr< <a class="el" href="classgraphar_1_1_property_group.html">PropertyGroup</a> > property_group) [...]
+<tr class="memdesc:a264853429b84060bbe36c671d5bc8963"><td class="mdescLeft"> </td><td class="mdescRight">Removes a property group from the <a class="el" href="classgraphar_1_1_edge_info.html" title="EdgeInfo is a class to describe the edge information, including the source vertex type,...">EdgeInfo</a> instance and returns a new <a class="el" href="classgraphar_1_1_edge_info.html" title="EdgeInfo is a class to describe the edge information, including the source vertex type,...">Edge [...]
+<tr class="separator:a264853429b84060bbe36c671d5bc8963"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a994023f50f2f952cc1361b0f9928dec4"><td class="memItemLeft" align="right" valign="top">const std::string & </td><td class="memItemRight" valign="bottom"><a class="el" href="classgraphar_1_1_edge_info.html#a994023f50f2f952cc1361b0f9928dec4">GetSrcType</a> () const</td></tr>
<tr class="separator:a994023f50f2f952cc1361b0f9928dec4"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a03c9b4f4b0edcf47f2e5746e8f9f6db0"><td class="memItemLeft" align="right" valign="top">const std::string & </td><td class="memItemRight" valign="bottom"><a class="el" href="classgraphar_1_1_edge_info.html#a03c9b4f4b0edcf47f2e5746e8f9f6db0">GetEdgeType</a> () const</td></tr>
@@ -183,7 +189,7 @@ Static Public Member Functions</h2></td></tr>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="classgraphar_1_1_edge_info.html" title="EdgeInfo is a class to describe the edge information, including the source vertex type,...">EdgeInfo</a> is a class to describe the edge information, including the source vertex type, edge type, destination vertex type, chunk size, adjacent list property groups, and prefix. </p>
-<p class="definition">Definition at line <a class="el" href="graph__info_8h_source.html#l00398">398</a> of file <a class="el" href="graph__info_8h_source.html">graph_info.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8h_source.html#l00408">408</a> of file <a class="el" href="graph__info_8h_source.html">graph_info.h</a>.</p>
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
<a id="ab3c32f3112dcf08304676eeb95545b55"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab3c32f3112dcf08304676eeb95545b55">◆ </a></span>EdgeInfo()</h2>
@@ -291,7 +297,7 @@ Static Public Member Functions</h2></td></tr>
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00643">643</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00679">679</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -319,7 +325,7 @@ Static Public Member Functions</h2></td></tr>
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00832">832</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00868">868</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -346,7 +352,7 @@ Static Public Member Functions</h2></td></tr>
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00848">848</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00906">906</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -375,7 +381,7 @@ Static Public Member Functions</h2></td></tr>
<p>Returns the edge info as a YAML formatted string.</p>
<dl class="section return"><dt>Returns</dt><dd>A Result object containing the YAML string, or a <a class="el" href="classgraphar_1_1_status.html" title="Status outcome object (success or error)">Status</a> object indicating an error. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00972">972</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01052">1052</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -421,7 +427,7 @@ Static Public Member Functions</h2></td></tr>
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00746">746</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00782">782</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -460,7 +466,7 @@ Static Public Member Functions</h2></td></tr>
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00764">764</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00800">800</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -489,7 +495,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A Result object containing the directory, or a <a class="el" href="classgraphar_1_1_status.html" title="Status outcome object (success or error)">Status</a> object indicating an error. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00756">756</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00792">792</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -509,7 +515,7 @@ Static Public Member Functions</h2></td></tr>
</div><div class="memdoc">
<p>Get the number of edges in each edge chunk. </p><dl class="section return"><dt>Returns</dt><dd>The number of edges in each edge chunk. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00662">662</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00698">698</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -529,7 +535,7 @@ Static Public Member Functions</h2></td></tr>
</div><div class="memdoc">
<p>Get the number of destination vertices in each vertex chunk. </p><dl class="section return"><dt>Returns</dt><dd>The number of destination vertices in each vertex chunk. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00666">666</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00702">702</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -549,7 +555,7 @@ Static Public Member Functions</h2></td></tr>
</div><div class="memdoc">
<p>Get the type of the destination vertex. </p><dl class="section return"><dt>Returns</dt><dd>The type of the destination vertex. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00660">660</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00696">696</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -588,7 +594,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A Result object containing the file path for the number of edges, or a <a class="el" href="classgraphar_1_1_status.html" title="Status outcome object (success or error)">Status</a> object indicating an error. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00738">738</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00774">774</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -608,7 +614,7 @@ Static Public Member Functions</h2></td></tr>
</div><div class="memdoc">
<p>Get the type of the edge. </p><dl class="section return"><dt>Returns</dt><dd>The type of the edge. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00658">658</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00694">694</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -635,7 +641,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A Result object containing the path prefix, or a <a class="el" href="classgraphar_1_1_status.html" title="Status outcome object (success or error)">Status</a> object indicating an error. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00772">772</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00808">808</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -655,7 +661,7 @@ Static Public Member Functions</h2></td></tr>
</div><div class="memdoc">
<p>Get the path prefix of the edge. </p><dl class="section return"><dt>Returns</dt><dd>The path prefix of the edge. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00668">668</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00704">704</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -708,7 +714,7 @@ Static Public Member Functions</h2></td></tr>
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00780">780</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00816">816</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -737,7 +743,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classgraphar_1_1_property.html">Property</a> group may be nullptr if the property is not found. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00716">716</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00752">752</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -766,7 +772,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd><a class="el" href="classgraphar_1_1_property.html">Property</a> group may be nullptr if the index is out of range. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00722">722</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00758">758</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -804,7 +810,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A Result object containing the path prefix, or a <a class="el" href="classgraphar_1_1_status.html" title="Status outcome object (success or error)">Status</a> object indicating an error. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00795">795</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00831">831</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -832,7 +838,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A Result object containing the data type of the property, or a KeyError <a class="el" href="classgraphar_1_1_status.html" title="Status outcome object (success or error)">Status</a> object if the property is not found. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00807">807</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00843">843</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -852,7 +858,7 @@ Static Public Member Functions</h2></td></tr>
</div><div class="memdoc">
<p>Get the number of source vertices in each vertex chunk. </p><dl class="section return"><dt>Returns</dt><dd>The number of source vertices in each vertex chunk. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00664">664</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00700">700</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -872,7 +878,7 @@ Static Public Member Functions</h2></td></tr>
</div><div class="memdoc">
<p>Get the type of the source vertex. </p><dl class="section return"><dt>Returns</dt><dd>The type of the source vertex. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00656">656</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00692">692</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -901,7 +907,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A Result object containing the file path for the number of edges, or a <a class="el" href="classgraphar_1_1_status.html" title="Status outcome object (success or error)">Status</a> object indicating an error. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00730">730</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00766">766</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -929,7 +935,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the edge info contains the adjacency list information, false otherwise. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00676">676</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00712">712</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -958,7 +964,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the edge info contains the property, false otherwise. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00681">681</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00717">717</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -978,7 +984,7 @@ Static Public Member Functions</h2></td></tr>
</div><div class="memdoc">
<p>Returns whether the edge is directed. </p><dl class="section return"><dt>Returns</dt><dd>True if the edge is directed, false otherwise. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00670">670</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00706">706</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -1006,7 +1012,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the property is a nullable key, False otherwise. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00824">824</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00860">860</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -1034,7 +1040,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the property is a primary key, False otherwise. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00816">816</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00852">852</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -1055,7 +1061,7 @@ Static Public Member Functions</h2></td></tr>
<p>Returns whether the edge info is validated.</p>
<dl class="section return"><dt>Returns</dt><dd>True if the edge info is valid, False otherwise. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00867">867</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00947">947</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -1091,7 +1097,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A Result object containing the <a class="el" href="classgraphar_1_1_edge_info.html" title="EdgeInfo is a class to describe the edge information, including the source vertex type,...">EdgeInfo</a> object, or a <a class="el" href="classgraphar_1_1_status.html" title="Status outcome object (success or error)">Status</a>. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00967">967</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01047">1047</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -1120,7 +1126,65 @@ Static Public Member Functions</h2></td></tr>
</div><div class="memdoc">
<p>Loads the yaml as an <a class="el" href="classgraphar_1_1_edge_info.html" title="EdgeInfo is a class to describe the edge information, including the source vertex type,...">EdgeInfo</a> instance. </p>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00886">886</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00966">966</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+
+</div>
+</div>
+<a id="a7db36496a4cf0eb517b463de5caa125f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a7db36496a4cf0eb517b463de5caa125f">◆ </a></span>RemoveAdjacentList()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Result< std::shared_ptr< <a class="el" href="classgraphar_1_1_edge_info.html">EdgeInfo</a> > > graphar::EdgeInfo::RemoveAdjacentList </td>
+ <td>(</td>
+ <td class="paramtype">std::shared_ptr< <a class="el" href="classgraphar_1_1_adjacent_list.html">AdjacentList</a> > </td>
+ <td class="paramname"><em>adj_list</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Removes an adjacency list from the <a class="el" href="classgraphar_1_1_edge_info.html" title="EdgeInfo is a class to describe the edge information, including the source vertex type,...">EdgeInfo</a> instance and returns a new <a class="el" href="classgraphar_1_1_edge_info.html" title="EdgeInfo is a class to describe the edge information, including the source vertex type,...">EdgeInfo</a>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">adj_list</td><td>The adjacency list to remove. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A <a class="el" href="classgraphar_1_1_status.html" title="Status outcome object (success or error)">Status</a> object indicating the success or failure of the operation. Returns InvalidOperation if the adjacency list is not contained. </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00884">884</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+
+</div>
+</div>
+<a id="a264853429b84060bbe36c671d5bc8963"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a264853429b84060bbe36c671d5bc8963">◆ </a></span>RemovePropertyGroup()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Result< std::shared_ptr< <a class="el" href="classgraphar_1_1_edge_info.html">EdgeInfo</a> > > graphar::EdgeInfo::RemovePropertyGroup </td>
+ <td>(</td>
+ <td class="paramtype">std::shared_ptr< <a class="el" href="classgraphar_1_1_property_group.html">PropertyGroup</a> > </td>
+ <td class="paramname"><em>property_group</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Removes a property group from the <a class="el" href="classgraphar_1_1_edge_info.html" title="EdgeInfo is a class to describe the edge information, including the source vertex type,...">EdgeInfo</a> instance and returns a new <a class="el" href="classgraphar_1_1_edge_info.html" title="EdgeInfo is a class to describe the edge information, including the source vertex type,...">EdgeInfo</a>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">property_group</td><td>The property group to remove. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A <a class="el" href="classgraphar_1_1_status.html" title="Status outcome object (success or error)">Status</a> object indicating the success or failure of the operation. Returns InvalidOperation if the property group is not contained. </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00925">925</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -1148,7 +1212,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A <a class="el" href="classgraphar_1_1_status.html" title="Status outcome object (success or error)">Status</a> object indicating success or failure. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01027">1027</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01107">1107</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -1168,7 +1232,7 @@ Static Public Member Functions</h2></td></tr>
</div><div class="memdoc">
<p>Get the version info of the edge. </p><dl class="section return"><dt>Returns</dt><dd>The version info of the edge. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00672">672</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00708">708</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
diff --git a/docs/cpp/classgraphar_1_1_edge_info_1_1_impl.html b/docs/cpp/classgraphar_1_1_edge_info_1_1_impl.html
index 3c94e96..f0421e1 100644
--- a/docs/cpp/classgraphar_1_1_edge_info_1_1_impl.html
+++ b/docs/cpp/classgraphar_1_1_edge_info_1_1_impl.html
@@ -137,7 +137,7 @@ std::shared_ptr< const <a class="el" href="classgraphar_1_1_info_version.html
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00537">537</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00573">573</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>src/graphar/<a class="el" href="graph__info_8cc_source.html">graph_info.cc</a></li>
</ul>
diff --git a/docs/cpp/classgraphar_1_1_graph_info-members.html b/docs/cpp/classgraphar_1_1_graph_info-members.html
index 7af352b..988e677 100644
--- a/docs/cpp/classgraphar_1_1_graph_info-members.html
+++ b/docs/cpp/classgraphar_1_1_graph_info-members.html
@@ -93,6 +93,8 @@ $(function() {
<tr><td class="entry"><a class="el" href="classgraphar_1_1_graph_info.html#a6e848c7015e3b7d4706ff1ac2ffa6dcd">IsValidated</a>() const</td><td class="entry"><a class="el" href="classgraphar_1_1_graph_info.html">graphar::GraphInfo</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classgraphar_1_1_graph_info.html#a63dbd61d6575fe783b3287f391f651ed">Load</a>(const std::string &path)</td><td class="entry"><a class="el" href="classgraphar_1_1_graph_info.html">graphar::GraphInfo</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classgraphar_1_1_graph_info.html#acf6ef4ce04b70184f596be59dbb58318">Load</a>(const std::string &input, const std::string &relative_path)</td><td class="entry"><a class="el" href="classgraphar_1_1_graph_info.html">graphar::GraphInfo</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classgraphar_1_1_graph_info.html#acc0e018222ae59e749a52b3678e6529a">RemoveEdge</a>(std::shared_ptr< EdgeInfo > edge_info) const</td><td class="entry"><a class="el" href="classgraphar_1_1_graph_info.html">graphar::GraphInfo</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classgraphar_1_1_graph_info.html#ad64a71966ca197ae14ea21ff8787b769">RemoveVertex</a>(std::shared_ptr< VertexInfo > vertex_info) const</td><td class="entry"><a class="el" href="classgraphar_1_1_graph_info.html">graphar::GraphInfo</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classgraphar_1_1_graph_info.html#a339f08f5a1427aadc91d30d41dccced3">Save</a>(const std::string &path) const</td><td class="entry"><a class="el" href="classgraphar_1_1_graph_info.html">graphar::GraphInfo</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="classgraphar_1_1_graph_info.html#aeb68a7550c63365d8093136601a3aeee">version</a>() const</td><td class="entry"><a class="el" href="classgraphar_1_1_graph_info.html">graphar::GraphInfo</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classgraphar_1_1_graph_info.html#aa384328a58c9138b5b77ea6172199d07">VertexInfoNum</a>() const</td><td class="entry"><a class="el" href="classgraphar_1_1_graph_info.html">graphar::GraphInfo</a></td><td class="entry"></td></tr>
diff --git a/docs/cpp/classgraphar_1_1_graph_info.html b/docs/cpp/classgraphar_1_1_graph_info.html
index c9d85e4..a1f36d0 100644
--- a/docs/cpp/classgraphar_1_1_graph_info.html
+++ b/docs/cpp/classgraphar_1_1_graph_info.html
@@ -91,9 +91,15 @@ Public Member Functions</h2></td></tr>
<tr class="memitem:a44e38c74dc765a56f8f0d200774d8180"><td class="memItemLeft" align="right" valign="top">Result< std::shared_ptr< <a class="el" href="classgraphar_1_1_graph_info.html">GraphInfo</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classgraphar_1_1_graph_info.html#a44e38c74dc765a56f8f0d200774d8180">AddVertex</a> (std::shared_ptr< <a class="el" href="classgraphar_1_1_vertex_info.html">VertexInfo</a> > vertex_info) const</td></tr>
<tr class="memdesc:a44e38c74dc765a56f8f0d200774d8180"><td class="mdescLeft"> </td><td class="mdescRight">Adds a vertex info to the <a class="el" href="classgraphar_1_1_graph_info.html">GraphInfo</a> instance and returns a new <a class="el" href="classgraphar_1_1_graph_info.html">GraphInfo</a>. <a href="classgraphar_1_1_graph_info.html#a44e38c74dc765a56f8f0d200774d8180">More...</a><br /></td></tr>
<tr class="separator:a44e38c74dc765a56f8f0d200774d8180"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:ad64a71966ca197ae14ea21ff8787b769"><td class="memItemLeft" align="right" valign="top">Result< std::shared_ptr< <a class="el" href="classgraphar_1_1_graph_info.html">GraphInfo</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classgraphar_1_1_graph_info.html#ad64a71966ca197ae14ea21ff8787b769">RemoveVertex</a> (std::shared_ptr< <a class="el" href="classgraphar_1_1_vertex_info.html">VertexInfo</a> > vertex_info) const</td></tr>
+<tr class="memdesc:ad64a71966ca197ae14ea21ff8787b769"><td class="mdescLeft"> </td><td class="mdescRight">Removes a vertex info from the <a class="el" href="classgraphar_1_1_graph_info.html">GraphInfo</a> instance and returns a new <a class="el" href="classgraphar_1_1_graph_info.html">GraphInfo</a>. <a href="classgraphar_1_1_graph_info.html#ad64a71966ca197ae14ea21ff8787b769">More...</a><br /></td></tr>
+<tr class="separator:ad64a71966ca197ae14ea21ff8787b769"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a8fdf1ff0ec57e3ca2e66dd4366e390aa"><td class="memItemLeft" align="right" valign="top">Result< std::shared_ptr< <a class="el" href="classgraphar_1_1_graph_info.html">GraphInfo</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classgraphar_1_1_graph_info.html#a8fdf1ff0ec57e3ca2e66dd4366e390aa">AddEdge</a> (std::shared_ptr< <a class="el" href="classgraphar_1_1_edge_info.html">EdgeInfo</a> > edge_info) const</td></tr>
<tr class="memdesc:a8fdf1ff0ec57e3ca2e66dd4366e390aa"><td class="mdescLeft"> </td><td class="mdescRight">Adds an edge info to the <a class="el" href="classgraphar_1_1_graph_info.html">GraphInfo</a> instance and returns a new <a class="el" href="classgraphar_1_1_graph_info.html">GraphInfo</a>. <a href="classgraphar_1_1_graph_info.html#a8fdf1ff0ec57e3ca2e66dd4366e390aa">More...</a><br /></td></tr>
<tr class="separator:a8fdf1ff0ec57e3ca2e66dd4366e390aa"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:acc0e018222ae59e749a52b3678e6529a"><td class="memItemLeft" align="right" valign="top">Result< std::shared_ptr< <a class="el" href="classgraphar_1_1_graph_info.html">GraphInfo</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classgraphar_1_1_graph_info.html#acc0e018222ae59e749a52b3678e6529a">RemoveEdge</a> (std::shared_ptr< <a class="el" href="classgraphar_1_1_edge_info.html">EdgeInfo</a> > edge_info) const</td></tr>
+<tr class="memdesc:acc0e018222ae59e749a52b3678e6529a"><td class="mdescLeft"> </td><td class="mdescRight">Removes an edge info from the <a class="el" href="classgraphar_1_1_graph_info.html">GraphInfo</a> instance and returns a new <a class="el" href="classgraphar_1_1_graph_info.html">GraphInfo</a>. <a href="classgraphar_1_1_graph_info.html#acc0e018222ae59e749a52b3678e6529a">More...</a><br /></td></tr>
+<tr class="separator:acc0e018222ae59e749a52b3678e6529a"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:ab10cb1ceaa01a74d44c1076c43c2fcce"><td class="memItemLeft" align="right" valign="top">const std::string & </td><td class="memItemRight" valign="bottom"><a class="el" href="classgraphar_1_1_graph_info.html#ab10cb1ceaa01a74d44c1076c43c2fcce">GetName</a> () const</td></tr>
<tr class="memdesc:ab10cb1ceaa01a74d44c1076c43c2fcce"><td class="mdescLeft"> </td><td class="mdescRight">Get the name of the graph. <a href="classgraphar_1_1_graph_info.html#ab10cb1ceaa01a74d44c1076c43c2fcce">More...</a><br /></td></tr>
<tr class="separator:ab10cb1ceaa01a74d44c1076c43c2fcce"><td class="memSeparator" colspan="2"> </td></tr>
@@ -162,7 +168,7 @@ Static Public Member Functions</h2></td></tr>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><a class="el" href="classgraphar_1_1_graph_info.html">GraphInfo</a> is a class to store the graph meta information. </p>
-<p class="definition">Definition at line <a class="el" href="graph__info_8h_source.html#l00706">706</a> of file <a class="el" href="graph__info_8h_source.html">graph_info.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8h_source.html#l00736">736</a> of file <a class="el" href="graph__info_8h_source.html">graph_info.h</a>.</p>
</div><h2 class="groupheader">Constructor & Destructor Documentation</h2>
<a id="a1b473deea923f7b2a57c339dc7e51192"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1b473deea923f7b2a57c339dc7e51192">◆ </a></span>GraphInfo()</h2>
@@ -242,7 +248,7 @@ Static Public Member Functions</h2></td></tr>
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01184">1184</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01264">1264</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -272,7 +278,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A <a class="el" href="classgraphar_1_1_status.html" title="Status outcome object (success or error)">Status</a> object indicating the success or failure of the operation. Returns <code>InvalidOperation</code> if the edge info is already contained. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01281">1281</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01377">1377</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -301,7 +307,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A <a class="el" href="classgraphar_1_1_status.html" title="Status outcome object (success or error)">Status</a> object indicating the success or failure of the operation. Returns InvalidOperation if the vertex info is already contained. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01268">1268</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01348">1348</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -322,7 +328,7 @@ Static Public Member Functions</h2></td></tr>
<p>Returns the graph info as a YAML formatted string.</p>
<dl class="section return"><dt>Returns</dt><dd>A Result object containing the YAML string, or a <a class="el" href="classgraphar_1_1_status.html" title="Status outcome object (success or error)">Status</a> object indicating an error. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01334">1334</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01446">1446</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -369,7 +375,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>edge info may be nullptr if the type is not found. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01221">1221</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01301">1301</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -398,7 +404,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>edge info may be nullptr if the index is out of range. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01251">1251</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01331">1331</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -420,7 +426,7 @@ Static Public Member Functions</h2></td></tr>
<p>Get the edge infos of graph info. </p>
<dl class="section return"><dt>Returns</dt><dd>edge infos of graph info </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01262">1262</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01342">1342</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -442,7 +448,7 @@ Static Public Member Functions</h2></td></tr>
<p>Get the extra metadata of the graph info object. </p>
<dl class="section return"><dt>Returns</dt><dd>The extra metadata of the graph info object. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01206">1206</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01286">1286</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -464,7 +470,7 @@ Static Public Member Functions</h2></td></tr>
<p>Get the vertex labels of the graph. </p>
<dl class="section return"><dt>Returns</dt><dd>The vertex labels of the graph. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01196">1196</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01276">1276</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -486,7 +492,7 @@ Static Public Member Functions</h2></td></tr>
<p>Get the name of the graph. </p>
<dl class="section return"><dt>Returns</dt><dd>The name of the graph. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01194">1194</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01274">1274</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -508,7 +514,7 @@ Static Public Member Functions</h2></td></tr>
<p>Get the absolute path prefix of the chunk files. </p>
<dl class="section return"><dt>Returns</dt><dd>The absolute path prefix of the chunk files. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01200">1200</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01280">1280</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -537,7 +543,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>vertex info may be nullptr if the type is not found. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01211">1211</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01291">1291</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -566,7 +572,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>vertex info may be nullptr if the index is out of range. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01243">1243</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01323">1323</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -588,7 +594,7 @@ Static Public Member Functions</h2></td></tr>
<p>Get the vertex infos of graph info. </p>
<dl class="section return"><dt>Returns</dt><dd>vertex infos of graph info </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01258">1258</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01338">1338</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -609,7 +615,7 @@ Static Public Member Functions</h2></td></tr>
<p>Returns whether the graph info is validated.</p>
<dl class="section return"><dt>Returns</dt><dd>True if the graph info is valid, False otherwise. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01266">1266</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01346">1346</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -657,7 +663,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A Result object containing the <a class="el" href="classgraphar_1_1_graph_info.html">GraphInfo</a> instance, or a <code><a class="el" href="classgraphar_1_1_status.html" title="Status outcome object (success or error)">Status</a></code> object indicating an error. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01321">1321</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01433">1433</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -694,7 +700,65 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A Result object containing the <a class="el" href="classgraphar_1_1_graph_info.html">GraphInfo</a> instance, or a <a class="el" href="classgraphar_1_1_status.html" title="Status outcome object (success or error)">Status</a> object indicating an error. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01308">1308</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01420">1420</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+
+</div>
+</div>
+<a id="acc0e018222ae59e749a52b3678e6529a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#acc0e018222ae59e749a52b3678e6529a">◆ </a></span>RemoveEdge()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Result< std::shared_ptr< <a class="el" href="classgraphar_1_1_graph_info.html">GraphInfo</a> > > graphar::GraphInfo::RemoveEdge </td>
+ <td>(</td>
+ <td class="paramtype">std::shared_ptr< <a class="el" href="classgraphar_1_1_edge_info.html">EdgeInfo</a> > </td>
+ <td class="paramname"><em>edge_info</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Removes an edge info from the <a class="el" href="classgraphar_1_1_graph_info.html">GraphInfo</a> instance and returns a new <a class="el" href="classgraphar_1_1_graph_info.html">GraphInfo</a>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">edge_info</td><td>The edge info to remove. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A <a class="el" href="classgraphar_1_1_status.html" title="Status outcome object (success or error)">Status</a> object indicating the success or failure of the operation. Returns InvalidOperation if the edge info is not contained. </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01392">1392</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+
+</div>
+</div>
+<a id="ad64a71966ca197ae14ea21ff8787b769"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad64a71966ca197ae14ea21ff8787b769">◆ </a></span>RemoveVertex()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Result< std::shared_ptr< <a class="el" href="classgraphar_1_1_graph_info.html">GraphInfo</a> > > graphar::GraphInfo::RemoveVertex </td>
+ <td>(</td>
+ <td class="paramtype">std::shared_ptr< <a class="el" href="classgraphar_1_1_vertex_info.html">VertexInfo</a> > </td>
+ <td class="paramname"><em>vertex_info</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Removes a vertex info from the <a class="el" href="classgraphar_1_1_graph_info.html">GraphInfo</a> instance and returns a new <a class="el" href="classgraphar_1_1_graph_info.html">GraphInfo</a>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">vertex_info</td><td>The vertex info to remove. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A <a class="el" href="classgraphar_1_1_status.html" title="Status outcome object (success or error)">Status</a> object indicating the success or failure of the operation. Returns InvalidOperation if the vertex info is not contained. </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01361">1361</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -722,7 +786,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A <a class="el" href="classgraphar_1_1_status.html" title="Status outcome object (success or error)">Status</a> object indicating success or failure. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01384">1384</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01496">1496</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -744,7 +808,7 @@ Static Public Member Functions</h2></td></tr>
<p>Get the version info of the graph info object. </p>
<dl class="section return"><dt>Returns</dt><dd>The version info of the graph info object. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01202">1202</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01282">1282</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
diff --git a/docs/cpp/classgraphar_1_1_graph_info_1_1_impl.html b/docs/cpp/classgraphar_1_1_graph_info_1_1_impl.html
index 68bc144..9654091 100644
--- a/docs/cpp/classgraphar_1_1_graph_info_1_1_impl.html
+++ b/docs/cpp/classgraphar_1_1_graph_info_1_1_impl.html
@@ -116,7 +116,7 @@ std::unordered_map< std::string, int > </td><td class="memItemRight"
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01124">1124</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l01204">1204</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>src/graphar/<a class="el" href="graph__info_8cc_source.html">graph_info.cc</a></li>
</ul>
diff --git a/docs/cpp/classgraphar_1_1_property_group.html b/docs/cpp/classgraphar_1_1_property_group.html
index b198210..a34877e 100644
--- a/docs/cpp/classgraphar_1_1_property_group.html
+++ b/docs/cpp/classgraphar_1_1_property_group.html
@@ -154,7 +154,7 @@ std::ostream & </td><td class="memItemRight" valign="bottom"><b>operato
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00094">94</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00109">109</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -234,7 +234,7 @@ std::ostream & </td><td class="memItemRight" valign="bottom"><b>operato
<p>Get the property list of group.</p>
<dl class="section return"><dt>Returns</dt><dd>The property list of group. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00105">105</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00120">120</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -254,7 +254,7 @@ std::ostream & </td><td class="memItemRight" valign="bottom"><b>operato
</div><div class="memdoc">
<p>Check if the property group is validated. </p>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00118">118</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00133">133</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
diff --git a/docs/cpp/classgraphar_1_1_vertex_info-members.html b/docs/cpp/classgraphar_1_1_vertex_info-members.html
index 509a055..9cc4bc7 100644
--- a/docs/cpp/classgraphar_1_1_vertex_info-members.html
+++ b/docs/cpp/classgraphar_1_1_vertex_info-members.html
@@ -95,10 +95,11 @@ $(function() {
<tr><td class="entry"><a class="el" href="classgraphar_1_1_vertex_info.html#af1ade1caa6e70e4b7ce60cf4df7ac50c">Load</a>(std::shared_ptr< Yaml > yaml)</td><td class="entry"><a class="el" href="classgraphar_1_1_vertex_info.html">graphar::VertexInfo</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="classgraphar_1_1_vertex_info.html#afc1a3662d2215f157af8ba115307807b">Load</a>(const std::string &input)</td><td class="entry"><a class="el" href="classgraphar_1_1_vertex_info.html">graphar::VertexInfo</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr><td class="entry"><a class="el" href="classgraphar_1_1_vertex_info.html#a7917824d18f7c84a02859f18b47e77fe">PropertyGroupNum</a>() const</td><td class="entry"><a class="el" href="classgraphar_1_1_vertex_info.html">graphar::VertexInfo</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classgraphar_1_1_vertex_info.html#afd42b99a43507a9edb1825e7e104d1e7">Save</a>(const std::string &file_name) const</td><td class="entry"><a class="el" href="classgraphar_1_1_vertex_info.html">graphar::VertexInfo</a></td><td class="entry"></td></tr>
- <tr><td class="entry"><a class="el" href="classgraphar_1_1_vertex_info.html#a47c84aab28674b5250a26c97806f2f48">version</a>() const</td><td class="entry"><a class="el" href="classgraphar_1_1_vertex_info.html">graphar::VertexInfo</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="classgraphar_1_1_vertex_info.html#acddb12cfcf7c6bfe1f1937f984828312">VertexInfo</a>(const std::string &type, IdType chunk_size, const PropertyGroupVector &property_groups, const std::vector< std::string > &labels={}, const std::string &prefix="", std::shared_ptr< const InfoVersion > version=nullptr)</td><td class="entry"><a class="el" href="classgraphar_1_1_vertex_info.html">graphar::VertexInfo [...]
- <tr bgcolor="#f0f0f0"><td class="entry"><b>~VertexInfo</b>() (defined in <a class="el" href="classgraphar_1_1_vertex_info.html">graphar::VertexInfo</a>)</td><td class="entry"><a class="el" href="classgraphar_1_1_vertex_info.html">graphar::VertexInfo</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classgraphar_1_1_vertex_info.html#a8432977087cbb207f65b91debc240119">RemovePropertyGroup</a>(std::shared_ptr< PropertyGroup > property_group) const</td><td class="entry"><a class="el" href="classgraphar_1_1_vertex_info.html">graphar::VertexInfo</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classgraphar_1_1_vertex_info.html#afd42b99a43507a9edb1825e7e104d1e7">Save</a>(const std::string &file_name) const</td><td class="entry"><a class="el" href="classgraphar_1_1_vertex_info.html">graphar::VertexInfo</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="classgraphar_1_1_vertex_info.html#a47c84aab28674b5250a26c97806f2f48">version</a>() const</td><td class="entry"><a class="el" href="classgraphar_1_1_vertex_info.html">graphar::VertexInfo</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="classgraphar_1_1_vertex_info.html#acddb12cfcf7c6bfe1f1937f984828312">VertexInfo</a>(const std::string &type, IdType chunk_size, const PropertyGroupVector &property_groups, const std::vector< std::string > &labels={}, const std::string &prefix="", std::shared_ptr< const InfoVersion > version=nullptr)</td><td class="entry"><a class="el" href="classgraphar_1_1_vertex_info.html">graphar::VertexInfo</a></td><td [...]
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~VertexInfo</b>() (defined in <a class="el" href="classgraphar_1_1_vertex_info.html">graphar::VertexInfo</a>)</td><td class="entry"><a class="el" href="classgraphar_1_1_vertex_info.html">graphar::VertexInfo</a></td><td class="entry"></td></tr>
</table></div><!-- contents -->
<!--
Licensed to the Apache Software Foundation (ASF) under one
diff --git a/docs/cpp/classgraphar_1_1_vertex_info.html b/docs/cpp/classgraphar_1_1_vertex_info.html
index 29506c3..9e21f96 100644
--- a/docs/cpp/classgraphar_1_1_vertex_info.html
+++ b/docs/cpp/classgraphar_1_1_vertex_info.html
@@ -92,6 +92,9 @@ Public Member Functions</h2></td></tr>
<tr class="separator:acddb12cfcf7c6bfe1f1937f984828312"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a4a70be2aa82d5c435b3271ae766bb54d"><td class="memItemLeft" align="right" valign="top">Result< std::shared_ptr< <a class="el" href="classgraphar_1_1_vertex_info.html">VertexInfo</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classgraphar_1_1_vertex_info.html#a4a70be2aa82d5c435b3271ae766bb54d">AddPropertyGroup</a> (std::shared_ptr< <a class="el" href="classgraphar_1_1_property_group.html">PropertyGroup</a> > property_grou [...]
<tr class="separator:a4a70be2aa82d5c435b3271ae766bb54d"><td class="memSeparator" colspan="2"> </td></tr>
+<tr class="memitem:a8432977087cbb207f65b91debc240119"><td class="memItemLeft" align="right" valign="top">Result< std::shared_ptr< <a class="el" href="classgraphar_1_1_vertex_info.html">VertexInfo</a> > > </td><td class="memItemRight" valign="bottom"><a class="el" href="classgraphar_1_1_vertex_info.html#a8432977087cbb207f65b91debc240119">RemovePropertyGroup</a> (std::shared_ptr< <a class="el" href="classgraphar_1_1_property_group.html">PropertyGroup</a> > property_g [...]
+<tr class="memdesc:a8432977087cbb207f65b91debc240119"><td class="mdescLeft"> </td><td class="mdescRight">Removes a property group from the <a class="el" href="classgraphar_1_1_vertex_info.html" title="VertexInfo is a class to describe the vertex information, including the vertex type,...">VertexInfo</a> instance and returns a new <a class="el" href="classgraphar_1_1_vertex_info.html" title="VertexInfo is a class to describe the vertex information, including the vertex type,...">Vert [...]
+<tr class="separator:a8432977087cbb207f65b91debc240119"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a2364ef208346bbd4d468ee78cfc6a1a3"><td class="memItemLeft" align="right" valign="top">const std::string & </td><td class="memItemRight" valign="bottom"><a class="el" href="classgraphar_1_1_vertex_info.html#a2364ef208346bbd4d468ee78cfc6a1a3">GetType</a> () const</td></tr>
<tr class="separator:a2364ef208346bbd4d468ee78cfc6a1a3"><td class="memSeparator" colspan="2"> </td></tr>
<tr class="memitem:a39a607d51da7e73a0fae473e90a61825"><td class="memItemLeft" align="right" valign="top">IdType </td><td class="memItemRight" valign="bottom"><a class="el" href="classgraphar_1_1_vertex_info.html#a39a607d51da7e73a0fae473e90a61825">GetChunkSize</a> () const</td></tr>
@@ -218,7 +221,7 @@ Static Public Member Functions</h2></td></tr>
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00265">265</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00280">280</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -246,7 +249,7 @@ Static Public Member Functions</h2></td></tr>
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00384">384</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00399">399</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -275,7 +278,7 @@ Static Public Member Functions</h2></td></tr>
<p>Returns the vertex info as a YAML formatted string.</p>
<dl class="section return"><dt>Returns</dt><dd>A Result object containing the YAML string, or a <a class="el" href="classgraphar_1_1_status.html" title="Status outcome object (success or error)">Status</a> object indicating an error. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00482">482</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00518">518</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -296,7 +299,7 @@ Static Public Member Functions</h2></td></tr>
<p>Get the chunk size of the vertex.</p>
<dl class="section return"><dt>Returns</dt><dd>The chunk size of the vertex. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00277">277</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00292">292</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -335,7 +338,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A Result object containing the file path, or a KeyError <a class="el" href="classgraphar_1_1_status.html" title="Status outcome object (success or error)">Status</a> object if the property group is not found in the vertex info. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00289">289</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00304">304</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -355,7 +358,7 @@ Static Public Member Functions</h2></td></tr>
</div><div class="memdoc">
<p>Get the labels of the vertex. </p><dl class="section return"><dt>Returns</dt><dd>The labels of the vertex. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00281">281</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00296">296</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -383,7 +386,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A Result object containing the path prefix, or a KeyError <a class="el" href="classgraphar_1_1_status.html" title="Status outcome object (success or error)">Status</a> object if the property group is not found in the vertex info. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00298">298</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00313">313</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -404,7 +407,7 @@ Static Public Member Functions</h2></td></tr>
<p>Get the path prefix of the vertex.</p>
<dl class="section return"><dt>Returns</dt><dd>The path prefix of the vertex. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00279">279</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00294">294</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -432,7 +435,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>property group may be nullptr if the property is not found. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00314">314</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00329">329</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -460,7 +463,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>property group may be nullptr if the index is out of range. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00320">320</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00335">335</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -480,7 +483,7 @@ Static Public Member Functions</h2></td></tr>
</div><div class="memdoc">
<p>Get the property groups of the vertex. </p>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00328">328</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00343">343</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -508,7 +511,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A Result object containing the data type of the property, or a KeyError <a class="el" href="classgraphar_1_1_status.html" title="Status outcome object (success or error)">Status</a> object if the property is not found. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00366">366</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00381">381</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -529,7 +532,7 @@ Static Public Member Functions</h2></td></tr>
<p>Get the type of the vertex.</p>
<dl class="section return"><dt>Returns</dt><dd>The type of the vertex. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00275">275</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00290">290</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -550,7 +553,7 @@ Static Public Member Functions</h2></td></tr>
<p>Get the file path for the number of vertices.</p>
<dl class="section return"><dt>Returns</dt><dd>The file path for the number of vertices. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00306">306</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00321">321</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -578,7 +581,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the property exists in the vertex info, False otherwise. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00348">348</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00363">363</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -606,7 +609,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the property group exists in the vertex info, False otherwise. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00353">353</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00368">368</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -634,7 +637,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the property is a nullable key, False otherwise. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00340">340</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00355">355</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -662,7 +665,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the property is a primary key, False otherwise. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00332">332</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00347">347</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -683,7 +686,7 @@ Static Public Member Functions</h2></td></tr>
<p>Returns whether the vertex info is validated.</p>
<dl class="section return"><dt>Returns</dt><dd>True if the vertex info is valid, False otherwise. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00401">401</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00437">437</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -719,7 +722,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A Result object containing the <a class="el" href="classgraphar_1_1_vertex_info.html" title="VertexInfo is a class to describe the vertex information, including the vertex type,...">VertexInfo</a> object, or a <a class="el" href="classgraphar_1_1_status.html" title="Status outcome object (success or error)">Status</a>. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00477">477</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00513">513</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -755,7 +758,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A Result object containing the <a class="el" href="classgraphar_1_1_vertex_info.html" title="VertexInfo is a class to describe the vertex information, including the vertex type,...">VertexInfo</a> object, or a <a class="el" href="classgraphar_1_1_status.html" title="Status outcome object (success or error)">Status</a> object indicating an error. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00415">415</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00451">451</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -776,7 +779,36 @@ Static Public Member Functions</h2></td></tr>
<p>Get the number of property groups of the vertex.</p>
<dl class="section return"><dt>Returns</dt><dd>The number of property groups of the vertex. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00310">310</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00325">325</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+
+</div>
+</div>
+<a id="a8432977087cbb207f65b91debc240119"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a8432977087cbb207f65b91debc240119">◆ </a></span>RemovePropertyGroup()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">Result< std::shared_ptr< <a class="el" href="classgraphar_1_1_vertex_info.html">VertexInfo</a> > > graphar::VertexInfo::RemovePropertyGroup </td>
+ <td>(</td>
+ <td class="paramtype">std::shared_ptr< <a class="el" href="classgraphar_1_1_property_group.html">PropertyGroup</a> > </td>
+ <td class="paramname"><em>property_group</em></td><td>)</td>
+ <td> const</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Removes a property group from the <a class="el" href="classgraphar_1_1_vertex_info.html" title="VertexInfo is a class to describe the vertex information, including the vertex type,...">VertexInfo</a> instance and returns a new <a class="el" href="classgraphar_1_1_vertex_info.html" title="VertexInfo is a class to describe the vertex information, including the vertex type,...">VertexInfo</a>. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">property_group</td><td>The property group to remove. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>A <a class="el" href="classgraphar_1_1_status.html" title="Status outcome object (success or error)">Status</a> object indicating the success or failure of the operation. Returns InvalidOperation if the property group is not contained. </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00416">416</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -804,7 +836,7 @@ Static Public Member Functions</h2></td></tr>
</dl>
<dl class="section return"><dt>Returns</dt><dd>A <a class="el" href="classgraphar_1_1_status.html" title="Status outcome object (success or error)">Status</a> object indicating success or failure. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00530">530</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00566">566</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
@@ -825,7 +857,7 @@ Static Public Member Functions</h2></td></tr>
<p>Get the version info of the vertex.</p>
<dl class="section return"><dt>Returns</dt><dd>The version info of the vertex. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00285">285</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00300">300</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div>
</div>
diff --git a/docs/cpp/classgraphar_1_1_vertex_info_1_1_impl.html b/docs/cpp/classgraphar_1_1_vertex_info_1_1_impl.html
index 13d035a..fb8a2be 100644
--- a/docs/cpp/classgraphar_1_1_vertex_info_1_1_impl.html
+++ b/docs/cpp/classgraphar_1_1_vertex_info_1_1_impl.html
@@ -122,7 +122,7 @@ std::unordered_map< std::string, Cardinality > </td><td class="memIte
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00197">197</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
+<p class="definition">Definition at line <a class="el" href="graph__info_8cc_source.html#l00212">212</a> of file <a class="el" href="graph__info_8cc_source.html">graph_info.cc</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>src/graphar/<a class="el" href="graph__info_8cc_source.html">graph_info.cc</a></li>
</ul>
diff --git a/docs/cpp/functions_func_r.html b/docs/cpp/functions_func_r.html
index 5c7785e..2788d4b 100644
--- a/docs/cpp/functions_func_r.html
+++ b/docs/cpp/functions_func_r.html
@@ -71,6 +71,19 @@ $(function() {
<li>ReadFileToValue()
: <a class="el" href="classgraphar_1_1_file_system.html#aa014a28119399836283a573c9abd97b7">graphar::FileSystem</a>
</li>
+<li>RemoveAdjacentList()
+: <a class="el" href="classgraphar_1_1_edge_info.html#a7db36496a4cf0eb517b463de5caa125f">graphar::EdgeInfo</a>
+</li>
+<li>RemoveEdge()
+: <a class="el" href="classgraphar_1_1_graph_info.html#acc0e018222ae59e749a52b3678e6529a">graphar::GraphInfo</a>
+</li>
+<li>RemovePropertyGroup()
+: <a class="el" href="classgraphar_1_1_edge_info.html#a264853429b84060bbe36c671d5bc8963">graphar::EdgeInfo</a>
+, <a class="el" href="classgraphar_1_1_vertex_info.html#a8432977087cbb207f65b91debc240119">graphar::VertexInfo</a>
+</li>
+<li>RemoveVertex()
+: <a class="el" href="classgraphar_1_1_graph_info.html#ad64a71966ca197ae14ea21ff8787b769">graphar::GraphInfo</a>
+</li>
</ul>
</div><!-- contents -->
<!--
diff --git a/docs/cpp/functions_r.html b/docs/cpp/functions_r.html
index 68cdccf..f0587c6 100644
--- a/docs/cpp/functions_r.html
+++ b/docs/cpp/functions_r.html
@@ -71,6 +71,19 @@ $(function() {
<li>ReadFileToValue()
: <a class="el" href="classgraphar_1_1_file_system.html#aa014a28119399836283a573c9abd97b7">graphar::FileSystem</a>
</li>
+<li>RemoveAdjacentList()
+: <a class="el" href="classgraphar_1_1_edge_info.html#a7db36496a4cf0eb517b463de5caa125f">graphar::EdgeInfo</a>
+</li>
+<li>RemoveEdge()
+: <a class="el" href="classgraphar_1_1_graph_info.html#acc0e018222ae59e749a52b3678e6529a">graphar::GraphInfo</a>
+</li>
+<li>RemovePropertyGroup()
+: <a class="el" href="classgraphar_1_1_edge_info.html#a264853429b84060bbe36c671d5bc8963">graphar::EdgeInfo</a>
+, <a class="el" href="classgraphar_1_1_vertex_info.html#a8432977087cbb207f65b91debc240119">graphar::VertexInfo</a>
+</li>
+<li>RemoveVertex()
+: <a class="el" href="classgraphar_1_1_graph_info.html#ad64a71966ca197ae14ea21ff8787b769">graphar::GraphInfo</a>
+</li>
</ul>
</div><!-- contents -->
<!--
diff --git a/docs/cpp/graph__info_8cc_source.html b/docs/cpp/graph__info_8cc_source.html
index cd3200e..b1f8b8f 100644
--- a/docs/cpp/graph__info_8cc_source.html
+++ b/docs/cpp/graph__info_8cc_source.html
@@ -143,1415 +143,1532 @@ $(function() {
<div class="line"><a name="l00071"></a><span class="lineno"> 71</span>  <span class="keywordflow">return</span> out;</div>
<div class="line"><a name="l00072"></a><span class="lineno"> 72</span> }</div>
<div class="line"><a name="l00073"></a><span class="lineno"> 73</span>  </div>
-<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> std::string BuildPath(<span class="keyword">const</span> std::vector<std::string>& paths) {</div>
-<div class="line"><a name="l00075"></a><span class="lineno"> 75</span>  std::string path;</div>
-<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& p : paths) {</div>
-<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">if</span> (p.back() == <span class="charliteral">'/'</span>) {</div>
-<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  path += p;</div>
-<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  path += p + <span class="stringliteral">"/"</span>;</div>
-<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  }</div>
-<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  }</div>
-<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  <span class="keywordflow">return</span> path;</div>
-<div class="line"><a name="l00084"></a><span class="lineno"> 84</span> }</div>
-<div class="line"><a name="l00085"></a><span class="lineno"> 85</span> } <span class="comment">// namespace</span></div>
-<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  </div>
-<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> Property& lhs, <span class="keyword">const</span> Property& rhs) {</div>
-<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  <span class="keywordflow">return</span> (lhs.name == rhs.name) && (lhs.type == rhs.type) &&</div>
-<div class="line"><a name="l00089"></a><span class="lineno"> 89</span>  (lhs.is_primary == rhs.is_primary) &&</div>
-<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  (lhs.is_nullable == rhs.is_nullable) &&</div>
-<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  (lhs.cardinality == rhs.cardinality);</div>
-<div class="line"><a name="l00092"></a><span class="lineno"> 92</span> }</div>
-<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  </div>
-<div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="classgraphar_1_1_property_group.html#abb84d3d9d16e5efc52c96089a977c60d"> 94</a></span> <a class="code" href="classgraphar_1_1_property_group.html#abb84d3d9d16e5efc52c96089a977c60d">PropertyGroup::PropertyGroup</a>(<span class="keyword">const</span> std::vector<Property>& properties,</div>
-<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  FileType file_type, <span class="keyword">const</span> std::string& prefix)</div>
-<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  : properties_(properties), file_type_(file_type), prefix_(prefix) {</div>
-<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  <span class="keywordflow">if</span> (prefix_.empty() && !properties_.empty()) {</div>
-<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& p : properties_) {</div>
-<div class="line"><a name="l00099"></a><span class="lineno"> 99</span>  prefix_ += p.name + REGULAR_SEPARATOR;</div>
-<div class="line"><a name="l00100"></a><span class="lineno"> 100</span>  }</div>
-<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  prefix_.back() = <span class="charliteral">'/'</span>;</div>
-<div class="line"><a name="l00102"></a><span class="lineno"> 102</span>  }</div>
-<div class="line"><a name="l00103"></a><span class="lineno"> 103</span> }</div>
-<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  </div>
-<div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="classgraphar_1_1_property_group.html#af090f1d74049ce0222148ad02b26f81a"> 105</a></span> <span class="keyword">const</span> std::vector<Property>& <a class="code" href="classgraphar_1_1_property_group.html#af090f1d74049ce0222148ad02b26f81a">PropertyGroup::GetProperties</a>()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  <span class="keywordflow">return</span> properties_;</div>
+<div class="line"><a name="l00074"></a><span class="lineno"> 74</span> <span class="keyword">template</span> <<span class="keyword">typename</span> T></div>
+<div class="line"><a name="l00075"></a><span class="lineno"> 75</span> std::vector<T> RemoveVectorElement(<span class="keyword">const</span> std::vector<T>& values, <span class="keywordtype">size_t</span> index) {</div>
+<div class="line"><a name="l00076"></a><span class="lineno"> 76</span>  <span class="keywordflow">if</span> (index >= values.size()) {</div>
+<div class="line"><a name="l00077"></a><span class="lineno"> 77</span>  <span class="keywordflow">return</span> values;</div>
+<div class="line"><a name="l00078"></a><span class="lineno"> 78</span>  }</div>
+<div class="line"><a name="l00079"></a><span class="lineno"> 79</span>  std::vector<T> out;</div>
+<div class="line"><a name="l00080"></a><span class="lineno"> 80</span>  out.reserve(values.size() - 1);</div>
+<div class="line"><a name="l00081"></a><span class="lineno"> 81</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < values.size(); ++i) {</div>
+<div class="line"><a name="l00082"></a><span class="lineno"> 82</span>  <span class="keywordflow">if</span> (i != index) {</div>
+<div class="line"><a name="l00083"></a><span class="lineno"> 83</span>  out.push_back(values[i]);</div>
+<div class="line"><a name="l00084"></a><span class="lineno"> 84</span>  }</div>
+<div class="line"><a name="l00085"></a><span class="lineno"> 85</span>  }</div>
+<div class="line"><a name="l00086"></a><span class="lineno"> 86</span>  <span class="keywordflow">return</span> out;</div>
+<div class="line"><a name="l00087"></a><span class="lineno"> 87</span> }</div>
+<div class="line"><a name="l00088"></a><span class="lineno"> 88</span>  </div>
+<div class="line"><a name="l00089"></a><span class="lineno"> 89</span> std::string BuildPath(<span class="keyword">const</span> std::vector<std::string>& paths) {</div>
+<div class="line"><a name="l00090"></a><span class="lineno"> 90</span>  std::string path;</div>
+<div class="line"><a name="l00091"></a><span class="lineno"> 91</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& p : paths) {</div>
+<div class="line"><a name="l00092"></a><span class="lineno"> 92</span>  <span class="keywordflow">if</span> (p.back() == <span class="charliteral">'/'</span>) {</div>
+<div class="line"><a name="l00093"></a><span class="lineno"> 93</span>  path += p;</div>
+<div class="line"><a name="l00094"></a><span class="lineno"> 94</span>  } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00095"></a><span class="lineno"> 95</span>  path += p + <span class="stringliteral">"/"</span>;</div>
+<div class="line"><a name="l00096"></a><span class="lineno"> 96</span>  }</div>
+<div class="line"><a name="l00097"></a><span class="lineno"> 97</span>  }</div>
+<div class="line"><a name="l00098"></a><span class="lineno"> 98</span>  <span class="keywordflow">return</span> path;</div>
+<div class="line"><a name="l00099"></a><span class="lineno"> 99</span> }</div>
+<div class="line"><a name="l00100"></a><span class="lineno"> 100</span> } <span class="comment">// namespace</span></div>
+<div class="line"><a name="l00101"></a><span class="lineno"> 101</span>  </div>
+<div class="line"><a name="l00102"></a><span class="lineno"> 102</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> Property& lhs, <span class="keyword">const</span> Property& rhs) {</div>
+<div class="line"><a name="l00103"></a><span class="lineno"> 103</span>  <span class="keywordflow">return</span> (lhs.name == rhs.name) && (lhs.type == rhs.type) &&</div>
+<div class="line"><a name="l00104"></a><span class="lineno"> 104</span>  (lhs.is_primary == rhs.is_primary) &&</div>
+<div class="line"><a name="l00105"></a><span class="lineno"> 105</span>  (lhs.is_nullable == rhs.is_nullable) &&</div>
+<div class="line"><a name="l00106"></a><span class="lineno"> 106</span>  (lhs.cardinality == rhs.cardinality);</div>
<div class="line"><a name="l00107"></a><span class="lineno"> 107</span> }</div>
<div class="line"><a name="l00108"></a><span class="lineno"> 108</span>  </div>
-<div class="line"><a name="l00109"></a><span class="lineno"> 109</span> <span class="keywordtype">bool</span> PropertyGroup::HasProperty(<span class="keyword">const</span> std::string& property_name)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& p : properties_) {</div>
-<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  <span class="keywordflow">if</span> (p.name == property_name) {</div>
-<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  }</div>
-<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  }</div>
-<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00116"></a><span class="lineno"> 116</span> }</div>
-<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  </div>
-<div class="line"><a name="l00118"></a><span class="lineno"><a class="line" href="classgraphar_1_1_property_group.html#a9a1d4401d81fb2576ae3f3de21eb9e25"> 118</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_property_group.html#a9a1d4401d81fb2576ae3f3de21eb9e25">PropertyGroup::IsValidated</a>()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  <span class="keywordflow">if</span> (prefix_.empty() ||</div>
-<div class="line"><a name="l00120"></a><span class="lineno"> 120</span>  (file_type_ != FileType::CSV && file_type_ != FileType::PARQUET &&</div>
-<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  file_type_ != FileType::ORC)) {</div>
-<div class="line"><a name="l00122"></a><span class="lineno"> 122</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  }</div>
-<div class="line"><a name="l00124"></a><span class="lineno"> 124</span>  <span class="keywordflow">if</span> (properties_.empty()) {</div>
-<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  }</div>
-<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  std::unordered_set<std::string> check_property_unique_set;</div>
-<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& p : properties_) {</div>
-<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  <span class="keywordflow">if</span> (p.name.empty() || p.type == <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00131"></a><span class="lineno"> 131</span>  }</div>
-<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  <span class="keywordflow">if</span> (check_property_unique_set.find(p.name) !=</div>
-<div class="line"><a name="l00133"></a><span class="lineno"> 133</span>  check_property_unique_set.end()) {</div>
-<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  check_property_unique_set.insert(p.name);</div>
-<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  }</div>
-<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  <span class="comment">// TODO(@acezen): support list type in csv file</span></div>
-<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">if</span> (p.type->id() == Type::LIST && file_type_ == FileType::CSV) {</div>
-<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="comment">// list type is not supported in csv file</span></div>
-<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  }</div>
-<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="comment">// TODO(@yangxk): support cardinality in csv file</span></div>
-<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">if</span> (p.cardinality != Cardinality::SINGLE && file_type_ == FileType::CSV) {</div>
-<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="comment">// list cardinality is not supported in csv file</span></div>
-<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  }</div>
-<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  }</div>
-<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00150"></a><span class="lineno"> 150</span> }</div>
-<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  </div>
-<div class="line"><a name="l00152"></a><span class="lineno"> 152</span> std::shared_ptr<PropertyGroup> CreatePropertyGroup(</div>
-<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="keyword">const</span> std::vector<Property>& properties, FileType file_type,</div>
-<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keyword">const</span> std::string& prefix) {</div>
-<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="keywordflow">if</span> (properties.empty()) {</div>
-<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="comment">// empty property group is not allowed</span></div>
-<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
-<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  }</div>
-<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">return</span> std::make_shared<PropertyGroup>(properties, file_type, prefix);</div>
-<div class="line"><a name="l00160"></a><span class="lineno"> 160</span> }</div>
-<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  </div>
-<div class="line"><a name="l00162"></a><span class="lineno"> 162</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> PropertyGroup& lhs, <span class="keyword">const</span> PropertyGroup& rhs) {</div>
-<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  <span class="keywordflow">return</span> (lhs.GetPrefix() == rhs.GetPrefix()) &&</div>
-<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  (lhs.GetFileType() == rhs.GetFileType()) &&</div>
-<div class="line"><a name="l00165"></a><span class="lineno"> 165</span>  (lhs.GetProperties() == rhs.GetProperties());</div>
-<div class="line"><a name="l00166"></a><span class="lineno"> 166</span> }</div>
-<div class="line"><a name="l00167"></a><span class="lineno"> 167</span>  </div>
-<div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="classgraphar_1_1_adjacent_list.html#ab31cbdbaae74305f7bf3ffbd76c93efc"> 168</a></span> <a class="code" href="classgraphar_1_1_adjacent_list.html#ab31cbdbaae74305f7bf3ffbd76c93efc">AdjacentList::AdjacentList</a>(AdjListType type, FileType file_type,</div>
-<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keyword">const</span> std::string& prefix)</div>
-<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  : type_(type), file_type_(file_type), prefix_(prefix) {</div>
-<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="keywordflow">if</span> (prefix_.empty()) {</div>
-<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  prefix_ = std::string(AdjListTypeToString(type_)) + <span class="stringliteral">"/"</span>;</div>
+<div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="classgraphar_1_1_property_group.html#abb84d3d9d16e5efc52c96089a977c60d"> 109</a></span> <a class="code" href="classgraphar_1_1_property_group.html#abb84d3d9d16e5efc52c96089a977c60d">PropertyGroup::PropertyGroup</a>(<span class="keyword">const</span> std::vector<Property>& properties,</div>
+<div class="line"><a name="l00110"></a><span class="lineno"> 110</span>  FileType file_type, <span class="keyword">const</span> std::string& prefix)</div>
+<div class="line"><a name="l00111"></a><span class="lineno"> 111</span>  : properties_(properties), file_type_(file_type), prefix_(prefix) {</div>
+<div class="line"><a name="l00112"></a><span class="lineno"> 112</span>  <span class="keywordflow">if</span> (prefix_.empty() && !properties_.empty()) {</div>
+<div class="line"><a name="l00113"></a><span class="lineno"> 113</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& p : properties_) {</div>
+<div class="line"><a name="l00114"></a><span class="lineno"> 114</span>  prefix_ += p.name + REGULAR_SEPARATOR;</div>
+<div class="line"><a name="l00115"></a><span class="lineno"> 115</span>  }</div>
+<div class="line"><a name="l00116"></a><span class="lineno"> 116</span>  prefix_.back() = <span class="charliteral">'/'</span>;</div>
+<div class="line"><a name="l00117"></a><span class="lineno"> 117</span>  }</div>
+<div class="line"><a name="l00118"></a><span class="lineno"> 118</span> }</div>
+<div class="line"><a name="l00119"></a><span class="lineno"> 119</span>  </div>
+<div class="line"><a name="l00120"></a><span class="lineno"><a class="line" href="classgraphar_1_1_property_group.html#af090f1d74049ce0222148ad02b26f81a"> 120</a></span> <span class="keyword">const</span> std::vector<Property>& <a class="code" href="classgraphar_1_1_property_group.html#af090f1d74049ce0222148ad02b26f81a">PropertyGroup::GetProperties</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00121"></a><span class="lineno"> 121</span>  <span class="keywordflow">return</span> properties_;</div>
+<div class="line"><a name="l00122"></a><span class="lineno"> 122</span> }</div>
+<div class="line"><a name="l00123"></a><span class="lineno"> 123</span>  </div>
+<div class="line"><a name="l00124"></a><span class="lineno"> 124</span> <span class="keywordtype">bool</span> PropertyGroup::HasProperty(<span class="keyword">const</span> std::string& property_name)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00125"></a><span class="lineno"> 125</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& p : properties_) {</div>
+<div class="line"><a name="l00126"></a><span class="lineno"> 126</span>  <span class="keywordflow">if</span> (p.name == property_name) {</div>
+<div class="line"><a name="l00127"></a><span class="lineno"> 127</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00128"></a><span class="lineno"> 128</span>  }</div>
+<div class="line"><a name="l00129"></a><span class="lineno"> 129</span>  }</div>
+<div class="line"><a name="l00130"></a><span class="lineno"> 130</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00131"></a><span class="lineno"> 131</span> }</div>
+<div class="line"><a name="l00132"></a><span class="lineno"> 132</span>  </div>
+<div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="classgraphar_1_1_property_group.html#a9a1d4401d81fb2576ae3f3de21eb9e25"> 133</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_property_group.html#a9a1d4401d81fb2576ae3f3de21eb9e25">PropertyGroup::IsValidated</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00134"></a><span class="lineno"> 134</span>  <span class="keywordflow">if</span> (prefix_.empty() ||</div>
+<div class="line"><a name="l00135"></a><span class="lineno"> 135</span>  (file_type_ != FileType::CSV && file_type_ != FileType::PARQUET &&</div>
+<div class="line"><a name="l00136"></a><span class="lineno"> 136</span>  file_type_ != FileType::ORC)) {</div>
+<div class="line"><a name="l00137"></a><span class="lineno"> 137</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00138"></a><span class="lineno"> 138</span>  }</div>
+<div class="line"><a name="l00139"></a><span class="lineno"> 139</span>  <span class="keywordflow">if</span> (properties_.empty()) {</div>
+<div class="line"><a name="l00140"></a><span class="lineno"> 140</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00141"></a><span class="lineno"> 141</span>  }</div>
+<div class="line"><a name="l00142"></a><span class="lineno"> 142</span>  std::unordered_set<std::string> check_property_unique_set;</div>
+<div class="line"><a name="l00143"></a><span class="lineno"> 143</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& p : properties_) {</div>
+<div class="line"><a name="l00144"></a><span class="lineno"> 144</span>  <span class="keywordflow">if</span> (p.name.empty() || p.type == <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l00145"></a><span class="lineno"> 145</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00146"></a><span class="lineno"> 146</span>  }</div>
+<div class="line"><a name="l00147"></a><span class="lineno"> 147</span>  <span class="keywordflow">if</span> (check_property_unique_set.find(p.name) !=</div>
+<div class="line"><a name="l00148"></a><span class="lineno"> 148</span>  check_property_unique_set.end()) {</div>
+<div class="line"><a name="l00149"></a><span class="lineno"> 149</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00150"></a><span class="lineno"> 150</span>  } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00151"></a><span class="lineno"> 151</span>  check_property_unique_set.insert(p.name);</div>
+<div class="line"><a name="l00152"></a><span class="lineno"> 152</span>  }</div>
+<div class="line"><a name="l00153"></a><span class="lineno"> 153</span>  <span class="comment">// TODO(@acezen): support list type in csv file</span></div>
+<div class="line"><a name="l00154"></a><span class="lineno"> 154</span>  <span class="keywordflow">if</span> (p.type->id() == Type::LIST && file_type_ == FileType::CSV) {</div>
+<div class="line"><a name="l00155"></a><span class="lineno"> 155</span>  <span class="comment">// list type is not supported in csv file</span></div>
+<div class="line"><a name="l00156"></a><span class="lineno"> 156</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00157"></a><span class="lineno"> 157</span>  }</div>
+<div class="line"><a name="l00158"></a><span class="lineno"> 158</span>  <span class="comment">// TODO(@yangxk): support cardinality in csv file</span></div>
+<div class="line"><a name="l00159"></a><span class="lineno"> 159</span>  <span class="keywordflow">if</span> (p.cardinality != Cardinality::SINGLE && file_type_ == FileType::CSV) {</div>
+<div class="line"><a name="l00160"></a><span class="lineno"> 160</span>  <span class="comment">// list cardinality is not supported in csv file</span></div>
+<div class="line"><a name="l00161"></a><span class="lineno"> 161</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00162"></a><span class="lineno"> 162</span>  }</div>
+<div class="line"><a name="l00163"></a><span class="lineno"> 163</span>  }</div>
+<div class="line"><a name="l00164"></a><span class="lineno"> 164</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00165"></a><span class="lineno"> 165</span> }</div>
+<div class="line"><a name="l00166"></a><span class="lineno"> 166</span>  </div>
+<div class="line"><a name="l00167"></a><span class="lineno"> 167</span> std::shared_ptr<PropertyGroup> CreatePropertyGroup(</div>
+<div class="line"><a name="l00168"></a><span class="lineno"> 168</span>  <span class="keyword">const</span> std::vector<Property>& properties, FileType file_type,</div>
+<div class="line"><a name="l00169"></a><span class="lineno"> 169</span>  <span class="keyword">const</span> std::string& prefix) {</div>
+<div class="line"><a name="l00170"></a><span class="lineno"> 170</span>  <span class="keywordflow">if</span> (properties.empty()) {</div>
+<div class="line"><a name="l00171"></a><span class="lineno"> 171</span>  <span class="comment">// empty property group is not allowed</span></div>
+<div class="line"><a name="l00172"></a><span class="lineno"> 172</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
<div class="line"><a name="l00173"></a><span class="lineno"> 173</span>  }</div>
-<div class="line"><a name="l00174"></a><span class="lineno"> 174</span> }</div>
-<div class="line"><a name="l00175"></a><span class="lineno"> 175</span>  </div>
-<div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="classgraphar_1_1_adjacent_list.html#a592ba95843997b321f5545e950f03a57"> 176</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_adjacent_list.html#a592ba95843997b321f5545e950f03a57">AdjacentList::IsValidated</a>()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00177"></a><span class="lineno"> 177</span>  <span class="keywordflow">if</span> (type_ != AdjListType::unordered_by_source &&</div>
-<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  type_ != AdjListType::ordered_by_source &&</div>
-<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  type_ != AdjListType::unordered_by_dest &&</div>
-<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  type_ != AdjListType::ordered_by_dest) {</div>
-<div class="line"><a name="l00181"></a><span class="lineno"> 181</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  }</div>
-<div class="line"><a name="l00183"></a><span class="lineno"> 183</span>  <span class="keywordflow">if</span> (prefix_.empty() ||</div>
-<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  (file_type_ != FileType::CSV && file_type_ != FileType::PARQUET &&</div>
-<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  file_type_ != FileType::ORC)) {</div>
-<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  }</div>
-<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00174"></a><span class="lineno"> 174</span>  <span class="keywordflow">return</span> std::make_shared<PropertyGroup>(properties, file_type, prefix);</div>
+<div class="line"><a name="l00175"></a><span class="lineno"> 175</span> }</div>
+<div class="line"><a name="l00176"></a><span class="lineno"> 176</span>  </div>
+<div class="line"><a name="l00177"></a><span class="lineno"> 177</span> <span class="keywordtype">bool</span> operator==(<span class="keyword">const</span> PropertyGroup& lhs, <span class="keyword">const</span> PropertyGroup& rhs) {</div>
+<div class="line"><a name="l00178"></a><span class="lineno"> 178</span>  <span class="keywordflow">return</span> (lhs.GetPrefix() == rhs.GetPrefix()) &&</div>
+<div class="line"><a name="l00179"></a><span class="lineno"> 179</span>  (lhs.GetFileType() == rhs.GetFileType()) &&</div>
+<div class="line"><a name="l00180"></a><span class="lineno"> 180</span>  (lhs.GetProperties() == rhs.GetProperties());</div>
+<div class="line"><a name="l00181"></a><span class="lineno"> 181</span> }</div>
+<div class="line"><a name="l00182"></a><span class="lineno"> 182</span>  </div>
+<div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="classgraphar_1_1_adjacent_list.html#ab31cbdbaae74305f7bf3ffbd76c93efc"> 183</a></span> <a class="code" href="classgraphar_1_1_adjacent_list.html#ab31cbdbaae74305f7bf3ffbd76c93efc">AdjacentList::AdjacentList</a>(AdjListType type, FileType file_type,</div>
+<div class="line"><a name="l00184"></a><span class="lineno"> 184</span>  <span class="keyword">const</span> std::string& prefix)</div>
+<div class="line"><a name="l00185"></a><span class="lineno"> 185</span>  : type_(type), file_type_(file_type), prefix_(prefix) {</div>
+<div class="line"><a name="l00186"></a><span class="lineno"> 186</span>  <span class="keywordflow">if</span> (prefix_.empty()) {</div>
+<div class="line"><a name="l00187"></a><span class="lineno"> 187</span>  prefix_ = std::string(AdjListTypeToString(type_)) + <span class="stringliteral">"/"</span>;</div>
+<div class="line"><a name="l00188"></a><span class="lineno"> 188</span>  }</div>
<div class="line"><a name="l00189"></a><span class="lineno"> 189</span> }</div>
<div class="line"><a name="l00190"></a><span class="lineno"> 190</span>  </div>
-<div class="line"><a name="l00191"></a><span class="lineno"> 191</span> std::shared_ptr<AdjacentList> CreateAdjacentList(AdjListType type,</div>
-<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  FileType file_type,</div>
-<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  <span class="keyword">const</span> std::string& prefix) {</div>
-<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  <span class="keywordflow">return</span> std::make_shared<AdjacentList>(type, file_type, prefix);</div>
-<div class="line"><a name="l00195"></a><span class="lineno"> 195</span> }</div>
-<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  </div>
-<div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info_1_1_impl.html"> 197</a></span> <span class="keyword">class </span><a class="code" href="classgraphar_1_1_vertex_info_1_1_impl.html">VertexInfo::Impl</a> {</div>
-<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  <a class="code" href="classgraphar_1_1_vertex_info_1_1_impl.html">Impl</a>(<span class="keyword">const</span> std::string& type, IdType chunk_size, <span class="keyword">const</span> std::string& prefix,</div>
-<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  <span class="keyword">const</span> PropertyGroupVector& property_groups,</div>
-<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keyword">const</span> std::vector<std::string>& labels,</div>
-<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  std::shared_ptr<const InfoVersion> <a class="code" href="classgraphar_1_1_vertex_info.html#a47c84aab28674b5250a26c97806f2f48">version</a>)</div>
-<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  : type_(type),</div>
-<div class="line"><a name="l00204"></a><span class="lineno"> 204</span>  chunk_size_(chunk_size),</div>
-<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  property_groups_(std::move(property_groups)),</div>
-<div class="line"><a name="l00206"></a><span class="lineno"> 206</span>  labels_(labels),</div>
-<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  prefix_(prefix),</div>
-<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  version_(std::move(<a class="code" href="classgraphar_1_1_vertex_info.html#a47c84aab28674b5250a26c97806f2f48">version</a>)) {</div>
-<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">if</span> (prefix_.empty()) {</div>
-<div class="line"><a name="l00210"></a><span class="lineno"> 210</span>  prefix_ = type_ + <span class="stringliteral">"/"</span>; <span class="comment">// default prefix</span></div>
-<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  }</div>
-<div class="line"><a name="l00212"></a><span class="lineno"> 212</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < property_groups_.size(); i++) {</div>
-<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keyword">const</span> <span class="keyword">auto</span>& pg = property_groups_[i];</div>
-<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <span class="keywordflow">if</span> (!pg) {</div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keywordflow">continue</span>;</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  }</div>
-<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& p : pg->GetProperties()) {</div>
-<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  property_name_to_index_.emplace(p.name, i);</div>
-<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  property_name_to_primary_.emplace(p.name, p.is_primary);</div>
-<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  property_name_to_nullable_.emplace(p.name, p.is_nullable);</div>
-<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  property_name_to_type_.emplace(p.name, p.type);</div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  property_name_to_cardinality_.emplace(p.name, p.cardinality);</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  }</div>
-<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  }</div>
-<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  }</div>
-<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  </div>
-<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordtype">bool</span> is_validated() <span class="keyword">const</span> noexcept {</div>
-<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keywordflow">if</span> (type_.empty() || chunk_size_ <= 0 || prefix_.empty()) {</div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  }</div>
-<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  std::unordered_set<std::string> check_property_unique_set;</div>
-<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& pg : property_groups_) {</div>
-<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  <span class="comment">// check if property group is validated</span></div>
-<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  <span class="keywordflow">if</span> (!pg || !pg->IsValidated()) {</div>
-<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  }</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  <span class="comment">// check if property name is unique in all property groups</span></div>
-<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& p : pg->GetProperties()) {</div>
-<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keywordflow">if</span> (check_property_unique_set.find(p.name) !=</div>
-<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  check_property_unique_set.end()) {</div>
-<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  check_property_unique_set.insert(p.name);</div>
-<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  }</div>
-<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  }</div>
-<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  }</div>
-<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  </div>
-<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  }</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  </div>
-<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  std::string type_;</div>
-<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  IdType chunk_size_;</div>
-<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  PropertyGroupVector property_groups_;</div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  std::vector<std::string> labels_;</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  std::string prefix_;</div>
-<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  std::shared_ptr<const InfoVersion> version_;</div>
-<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  std::unordered_map<std::string, int> property_name_to_index_;</div>
-<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  std::unordered_map<std::string, bool> property_name_to_primary_;</div>
-<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  std::unordered_map<std::string, bool> property_name_to_nullable_;</div>
-<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  std::unordered_map<std::string, std::shared_ptr<DataType>></div>
-<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  property_name_to_type_;</div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  std::unordered_map<std::string, Cardinality> property_name_to_cardinality_;</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span> };</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  </div>
-<div class="line"><a name="l00265"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#acddb12cfcf7c6bfe1f1937f984828312"> 265</a></span> <a class="code" href="classgraphar_1_1_vertex_info.html#acddb12cfcf7c6bfe1f1937f984828312">VertexInfo::VertexInfo</a>(<span class="keyword">const</span> std::string& type, IdType chunk_size,</div>
-<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  <span class="keyword">const</span> PropertyGroupVector& property_groups,</div>
-<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  <span class="keyword">const</span> std::vector<std::string>& labels,</div>
-<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  <span class="keyword">const</span> std::string& prefix,</div>
-<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  std::shared_ptr<const InfoVersion> version)</div>
-<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  : impl_(new <a class="code" href="classgraphar_1_1_vertex_info_1_1_impl.html">Impl</a>(type, chunk_size, prefix, property_groups, labels,</div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  version)) {}</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  </div>
-<div class="line"><a name="l00273"></a><span class="lineno"> 273</span> VertexInfo::~VertexInfo() = <span class="keywordflow">default</span>;</div>
-<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  </div>
-<div class="line"><a name="l00275"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a2364ef208346bbd4d468ee78cfc6a1a3"> 275</a></span> <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_vertex_info.html#a2364ef208346bbd4d468ee78cfc6a1a3">VertexInfo::GetType</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->type_; }</div>
-<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  </div>
-<div class="line"><a name="l00277"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a39a607d51da7e73a0fae473e90a61825"> 277</a></span> IdType <a class="code" href="classgraphar_1_1_vertex_info.html#a39a607d51da7e73a0fae473e90a61825">VertexInfo::GetChunkSize</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->chunk_size_; }</div>
-<div class="line"><a name="l00278"></a><span class="lineno"> 278</span>  </div>
-<div class="line"><a name="l00279"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a8fb76a180c2fb8192961a27862f5aa69"> 279</a></span> <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_vertex_info.html#a8fb76a180c2fb8192961a27862f5aa69">VertexInfo::GetPrefix</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->prefix_; }</div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  </div>
-<div class="line"><a name="l00281"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a34a49ce4905632889db3f969986cbe75"> 281</a></span> <span class="keyword">const</span> std::vector<std::string>& <a class="code" href="classgraphar_1_1_vertex_info.html#a34a49ce4905632889db3f969986cbe75">VertexInfo::GetLabels</a>()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keywordflow">return</span> impl_->labels_;</div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span> }</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  </div>
-<div class="line"><a name="l00285"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a47c84aab28674b5250a26c97806f2f48"> 285</a></span> <span class="keyword">const</span> std::shared_ptr<const InfoVersion>& <a class="code" href="classgraphar_1_1_vertex_info.html#a47c84aab28674b5250a26c97806f2f48">VertexInfo::version</a>()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  <span class="keywordflow">return</span> impl_->version_;</div>
-<div class="line"><a name="l00287"></a><span class="lineno"> 287</span> }</div>
-<div class="line"><a name="l00288"></a><span class="lineno"> 288</span>  </div>
-<div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a65faa894acf765eae9c7d4e34dff6306"> 289</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_vertex_info.html#a65faa894acf765eae9c7d4e34dff6306">VertexInfo::GetFilePath</a>(</div>
-<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  std::shared_ptr<PropertyGroup> property_group, IdType chunk_index)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordflow">if</span> (property_group == <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"property group is nullptr"</span>);</div>
-<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  }</div>
-<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keywordflow">return</span> BuildPath({impl_->prefix_, property_group->GetPrefix()}) + <span class="stringliteral">"chunk"</span> +</div>
-<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  std::to_string(chunk_index);</div>
-<div class="line"><a name="l00296"></a><span class="lineno"> 296</span> }</div>
-<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  </div>
-<div class="line"><a name="l00298"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a3214a62ac41be6cb53c22894d2926710"> 298</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_vertex_info.html#a3214a62ac41be6cb53c22894d2926710">VertexInfo::GetPathPrefix</a>(</div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  std::shared_ptr<PropertyGroup> property_group)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  <span class="keywordflow">if</span> (property_group == <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"property group is nullptr"</span>);</div>
-<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  }</div>
-<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  <span class="keywordflow">return</span> BuildPath({impl_->prefix_, property_group->GetPrefix()});</div>
-<div class="line"><a name="l00304"></a><span class="lineno"> 304</span> }</div>
-<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  </div>
-<div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#aad61b0a40a4bef344fad93cb1332d97d"> 306</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_vertex_info.html#aad61b0a40a4bef344fad93cb1332d97d">VertexInfo::GetVerticesNumFilePath</a>()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordflow">return</span> BuildPath({impl_->prefix_}) + <span class="stringliteral">"vertex_count"</span>;</div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span> }</div>
-<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  </div>
-<div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a7917824d18f7c84a02859f18b47e77fe"> 310</a></span> <span class="keywordtype">int</span> <a class="code" href="classgraphar_1_1_vertex_info.html#a7917824d18f7c84a02859f18b47e77fe">VertexInfo::PropertyGroupNum</a>()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00311"></a><span class="lineno"> 311</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(impl_->property_groups_.size());</div>
-<div class="line"><a name="l00312"></a><span class="lineno"> 312</span> }</div>
-<div class="line"><a name="l00313"></a><span class="lineno"> 313</span>  </div>
-<div class="line"><a name="l00314"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a2a4cc44b7db8784bdb0e9691c7ad0fba"> 314</a></span> std::shared_ptr<PropertyGroup> <a class="code" href="classgraphar_1_1_vertex_info.html#a2a4cc44b7db8784bdb0e9691c7ad0fba">VertexInfo::GetPropertyGroup</a>(</div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keyword">const</span> std::string& property_name)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keywordtype">int</span> i = LookupKeyIndex(impl_->property_name_to_index_, property_name);</div>
-<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  <span class="keywordflow">return</span> i == -1 ? nullptr : impl_->property_groups_[i];</div>
-<div class="line"><a name="l00318"></a><span class="lineno"> 318</span> }</div>
-<div class="line"><a name="l00319"></a><span class="lineno"> 319</span>  </div>
-<div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#af6106f8fa90d876a0e97f58c7c39db33"> 320</a></span> std::shared_ptr<PropertyGroup> <a class="code" href="classgraphar_1_1_vertex_info.html#af6106f8fa90d876a0e97f58c7c39db33">VertexInfo::GetPropertyGroupByIndex</a>(</div>
-<div class="line"><a name="l00321"></a><span class="lineno"> 321</span>  <span class="keywordtype">int</span> index)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="keywordflow">if</span> (index < 0 || index >= <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(impl_->property_groups_.size())) {</div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  }</div>
-<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="keywordflow">return</span> impl_->property_groups_[index];</div>
-<div class="line"><a name="l00326"></a><span class="lineno"> 326</span> }</div>
-<div class="line"><a name="l00327"></a><span class="lineno"> 327</span>  </div>
-<div class="line"><a name="l00328"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#aff9aadd406180802facb14d6a4b5e72e"> 328</a></span> <span class="keyword">const</span> PropertyGroupVector& <a class="code" href="classgraphar_1_1_vertex_info.html#aff9aadd406180802facb14d6a4b5e72e">VertexInfo::GetPropertyGroups</a>()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00329"></a><span class="lineno"> 329</span>  <span class="keywordflow">return</span> impl_->property_groups_;</div>
-<div class="line"><a name="l00330"></a><span class="lineno"> 330</span> }</div>
-<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  </div>
-<div class="line"><a name="l00332"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a68f7407348b39115e0fa4d44750e9d37"> 332</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_vertex_info.html#a68f7407348b39115e0fa4d44750e9d37">VertexInfo::IsPrimaryKey</a>(<span class="keyword">const</span> std::string& property_name)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keyword">auto</span> it = impl_->property_name_to_primary_.find(property_name);</div>
-<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  <span class="keywordflow">if</span> (it == impl_->property_name_to_primary_.end()) {</div>
-<div class="line"><a name="l00335"></a><span class="lineno"> 335</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  }</div>
-<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="keywordflow">return</span> it->second;</div>
-<div class="line"><a name="l00338"></a><span class="lineno"> 338</span> }</div>
-<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  </div>
-<div class="line"><a name="l00340"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#ad6bc3cbb3ed0c5eaa7fd50298e106a78"> 340</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_vertex_info.html#ad6bc3cbb3ed0c5eaa7fd50298e106a78">VertexInfo::IsNullableKey</a>(<span class="keyword">const</span> std::string& property_name)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00341"></a><span class="lineno"> 341</span>  <span class="keyword">auto</span> it = impl_->property_name_to_nullable_.find(property_name);</div>
-<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keywordflow">if</span> (it == impl_->property_name_to_nullable_.end()) {</div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  }</div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  <span class="keywordflow">return</span> it->second;</div>
-<div class="line"><a name="l00346"></a><span class="lineno"> 346</span> }</div>
-<div class="line"><a name="l00347"></a><span class="lineno"> 347</span>  </div>
-<div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a5d42bec7d8cdb67f1e04b921f484e328"> 348</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_vertex_info.html#a5d42bec7d8cdb67f1e04b921f484e328">VertexInfo::HasProperty</a>(<span class="keyword">const</span> std::string& property_name)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="keywordflow">return</span> impl_->property_name_to_index_.find(property_name) !=</div>
-<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  impl_->property_name_to_index_.end();</div>
-<div class="line"><a name="l00351"></a><span class="lineno"> 351</span> }</div>
-<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  </div>
-<div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a64aca915578185662b4429e5ed265322"> 353</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_vertex_info.html#a64aca915578185662b4429e5ed265322">VertexInfo::HasPropertyGroup</a>(</div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  <span class="keyword">const</span> std::shared_ptr<PropertyGroup>& property_group)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  <span class="keywordflow">if</span> (property_group == <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  }</div>
-<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& pg : impl_->property_groups_) {</div>
-<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  <span class="keywordflow">if</span> (*pg == *property_group) {</div>
-<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  }</div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  }</div>
-<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00364"></a><span class="lineno"> 364</span> }</div>
-<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  </div>
-<div class="line"><a name="l00366"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#acbeedc2afc98e53155bb1f75c9cb465c"> 366</a></span> Result<std::shared_ptr<DataType>> <a class="code" href="classgraphar_1_1_vertex_info.html#acbeedc2afc98e53155bb1f75c9cb465c">VertexInfo::GetPropertyType</a>(</div>
-<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  <span class="keyword">const</span> std::string& property_name)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keyword">auto</span> it = impl_->property_name_to_type_.find(property_name);</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keywordflow">if</span> (it == impl_->property_name_to_type_.end()) {</div>
-<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"property name not found: "</span>, property_name);</div>
-<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  }</div>
-<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  <span class="keywordflow">return</span> it->second;</div>
-<div class="line"><a name="l00373"></a><span class="lineno"> 373</span> }</div>
-<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  </div>
-<div class="line"><a name="l00375"></a><span class="lineno"> 375</span> Result<Cardinality> VertexInfo::GetPropertyCardinality(</div>
-<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  <span class="keyword">const</span> std::string& property_name)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keyword">auto</span> it = impl_->property_name_to_cardinality_.find(property_name);</div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordflow">if</span> (it == impl_->property_name_to_cardinality_.end()) {</div>
-<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"property name not found: "</span>, property_name);</div>
-<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  }</div>
-<div class="line"><a name="l00381"></a><span class="lineno"> 381</span>  <span class="keywordflow">return</span> it->second;</div>
-<div class="line"><a name="l00382"></a><span class="lineno"> 382</span> }</div>
-<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  </div>
-<div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a4a70be2aa82d5c435b3271ae766bb54d"> 384</a></span> Result<std::shared_ptr<VertexInfo>> <a class="code" href="classgraphar_1_1_vertex_info.html#a4a70be2aa82d5c435b3271ae766bb54d">VertexInfo::AddPropertyGroup</a>(</div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  std::shared_ptr<PropertyGroup> property_group)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  <span class="keywordflow">if</span> (property_group == <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"property group is nullptr"</span>);</div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  }</div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& property : property_group->GetProperties()) {</div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span>  <span class="keywordflow">if</span> (<a class="code" href="classgraphar_1_1_vertex_info.html#a5d42bec7d8cdb67f1e04b921f484e328">HasProperty</a>(property.name)) {</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"property in the property group already exists: "</span>,</div>
-<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  property.name);</div>
-<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  }</div>
-<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  }</div>
-<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="keywordflow">return</span> std::make_shared<VertexInfo>(</div>
-<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  impl_->type_, impl_->chunk_size_,</div>
-<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  AddVectorElement(impl_->property_groups_, property_group), impl_->labels_,</div>
-<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  impl_->prefix_, impl_->version_);</div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span> }</div>
-<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  </div>
-<div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a70d2cb4637d4b2909bd34045a39568af"> 401</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_vertex_info.html#a70d2cb4637d4b2909bd34045a39568af">VertexInfo::IsValidated</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->is_validated(); }</div>
-<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  </div>
-<div class="line"><a name="l00403"></a><span class="lineno"> 403</span> std::shared_ptr<VertexInfo> CreateVertexInfo(</div>
-<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="keyword">const</span> std::string& type, IdType chunk_size,</div>
-<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="keyword">const</span> PropertyGroupVector& property_groups,</div>
-<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="keyword">const</span> std::vector<std::string>& labels, <span class="keyword">const</span> std::string& prefix,</div>
-<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  std::shared_ptr<const InfoVersion> version) {</div>
-<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  <span class="keywordflow">if</span> (type.empty() || chunk_size <= 0) {</div>
-<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
-<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  }</div>
-<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  <span class="keywordflow">return</span> std::make_shared<VertexInfo>(type, chunk_size, property_groups, labels,</div>
-<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  prefix, version);</div>
-<div class="line"><a name="l00413"></a><span class="lineno"> 413</span> }</div>
-<div class="line"><a name="l00414"></a><span class="lineno"> 414</span>  </div>
-<div class="line"><a name="l00415"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#af1ade1caa6e70e4b7ce60cf4df7ac50c"> 415</a></span> Result<std::shared_ptr<VertexInfo>> <a class="code" href="classgraphar_1_1_vertex_info.html#af1ade1caa6e70e4b7ce60cf4df7ac50c">VertexInfo::Load</a>(</div>
-<div class="line"><a name="l00416"></a><span class="lineno"> 416</span>  std::shared_ptr<Yaml> yaml) {</div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="keywordflow">if</span> (yaml == <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"yaml shared pointer is nullptr"</span>);</div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  }</div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  std::string type = yaml->operator[](<span class="stringliteral">"type"</span>).As<std::string>();</div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  IdType chunk_size =</div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <span class="keyword">static_cast<</span>IdType<span class="keyword">></span>(yaml->operator[](<span class="stringliteral">"chunk_size"</span>).As<int64_t>());</div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  std::string prefix;</div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  <span class="keywordflow">if</span> (!yaml->operator[](<span class="stringliteral">"prefix"</span>).IsNone()) {</div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  prefix = yaml->operator[](<span class="stringliteral">"prefix"</span>).As<std::string>();</div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  }</div>
-<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  std::vector<std::string> labels;</div>
-<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keyword">const</span> <span class="keyword">auto</span>& labels_node = yaml->operator[](<span class="stringliteral">"labels"</span>);</div>
-<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <span class="keywordflow">if</span> (labels_node.IsSequence()) {</div>
-<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = labels_node.Begin(); it != labels_node.End(); it++) {</div>
-<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  labels.push_back((*it).second.As<std::string>());</div>
-<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  }</div>
-<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  }</div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  std::shared_ptr<const InfoVersion> <a class="code" href="classgraphar_1_1_vertex_info.html#a47c84aab28674b5250a26c97806f2f48">version</a> = <span class="keyword">nullptr</span>;</div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  <span class="keywordflow">if</span> (!yaml->operator[](<span class="stringliteral">"version"</span>).IsNone()) {</div>
-<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  GAR_ASSIGN_OR_RAISE(</div>
-<div class="line"><a name="l00437"></a><span class="lineno"> 437</span>  <a class="code" href="classgraphar_1_1_vertex_info.html#a47c84aab28674b5250a26c97806f2f48">version</a>,</div>
-<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  <a class="code" href="classgraphar_1_1_info_version.html#a6c149bd120118e7c6803dcac71a7a667">InfoVersion::Parse</a>(yaml->operator[](<span class="stringliteral">"version"</span>).As<std::string>()));</div>
-<div class="line"><a name="l00439"></a><span class="lineno"> 439</span>  }</div>
-<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  PropertyGroupVector property_groups;</div>
-<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keyword">auto</span> property_groups_node = yaml->operator[](<span class="stringliteral">"property_groups"</span>);</div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keywordflow">if</span> (!property_groups_node.IsNone()) { <span class="comment">// property_groups exist</span></div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = property_groups_node.Begin();</div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  it != property_groups_node.End(); it++) {</div>
-<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  std::string pg_prefix;</div>
-<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  <span class="keyword">auto</span>& node = (*it).second;</div>
-<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="keywordflow">if</span> (!node[<span class="stringliteral">"prefix"</span>].IsNone()) {</div>
-<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  pg_prefix = node[<span class="stringliteral">"prefix"</span>].As<std::string>();</div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  }</div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  <span class="keyword">auto</span> file_type = StringToFileType(node[<span class="stringliteral">"file_type"</span>].As<std::string>());</div>
-<div class="line"><a name="l00451"></a><span class="lineno"> 451</span>  std::vector<Property> property_vec;</div>
-<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  <span class="keyword">auto</span>& properties = node[<span class="stringliteral">"properties"</span>];</div>
-<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> iit = properties.Begin(); iit != properties.End(); iit++) {</div>
-<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="keyword">auto</span>& p_node = (*iit).second;</div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="keyword">auto</span> property_name = p_node[<span class="stringliteral">"name"</span>].As<std::string>();</div>
-<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  <span class="keyword">auto</span> property_type =</div>
-<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  DataType::TypeNameToDataType(p_node[<span class="stringliteral">"data_type"</span>].As<std::string>());</div>
-<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <span class="keywordtype">bool</span> is_primary = p_node[<span class="stringliteral">"is_primary"</span>].As<<span class="keywordtype">bool</span>>();</div>
-<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  <span class="keywordtype">bool</span> is_nullable =</div>
-<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  p_node[<span class="stringliteral">"is_nullable"</span>].IsNone() || p_node[<span class="stringliteral">"is_nullable"</span>].As<<span class="keywordtype">bool</span>>();</div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  Cardinality cardinality = Cardinality::SINGLE;</div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  <span class="keywordflow">if</span> (!p_node[<span class="stringliteral">"cardinality"</span>].IsNone()) {</div>
-<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  cardinality =</div>
-<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  StringToCardinality(p_node[<span class="stringliteral">"cardinality"</span>].As<std::string>());</div>
-<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  }</div>
-<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  property_vec.emplace_back(property_name, property_type, is_primary,</div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  is_nullable, cardinality);</div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  }</div>
-<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  property_groups.push_back(</div>
-<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  std::make_shared<PropertyGroup>(property_vec, file_type, pg_prefix));</div>
-<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  }</div>
-<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  }</div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <span class="keywordflow">return</span> std::make_shared<VertexInfo>(type, chunk_size, property_groups, labels,</div>
-<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  prefix, <a class="code" href="classgraphar_1_1_vertex_info.html#a47c84aab28674b5250a26c97806f2f48">version</a>);</div>
-<div class="line"><a name="l00475"></a><span class="lineno"> 475</span> }</div>
-<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  </div>
-<div class="line"><a name="l00477"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#afc1a3662d2215f157af8ba115307807b"> 477</a></span> Result<std::shared_ptr<VertexInfo>> <a class="code" href="classgraphar_1_1_vertex_info.html#af1ade1caa6e70e4b7ce60cf4df7ac50c">VertexInfo::Load</a>(<span class="keyword">const</span> std::string& input) {</div>
-<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> yaml, <a class="code" href="classgraphar_1_1_yaml.html#a2fff6ba5eaf3e59b489d015f10013179">Yaml::Load</a>(input));</div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_vertex_info.html#af1ade1caa6e70e4b7ce60cf4df7ac50c">VertexInfo::Load</a>(yaml);</div>
-<div class="line"><a name="l00480"></a><span class="lineno"> 480</span> }</div>
-<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  </div>
-<div class="line"><a name="l00482"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#adc0a253c371a004324ffae6e8abbdbc7"> 482</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_vertex_info.html#adc0a253c371a004324ffae6e8abbdbc7">VertexInfo::Dump</a>() const noexcept {</div>
-<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <span class="keywordflow">if</span> (!<a class="code" href="classgraphar_1_1_vertex_info.html#a70d2cb4637d4b2909bd34045a39568af">IsValidated</a>()) {</div>
-<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"The vertex info is not validated"</span>);</div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  }</div>
-<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  std::string dump_string;</div>
-<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  ::Yaml::Node node;</div>
-<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <span class="keywordflow">try</span> {</div>
-<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  node[<span class="stringliteral">"type"</span>] = impl_->type_;</div>
-<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  node[<span class="stringliteral">"chunk_size"</span>] = std::to_string(impl_->chunk_size_);</div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  node[<span class="stringliteral">"prefix"</span>] = impl_->prefix_;</div>
-<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="keywordflow">if</span> (impl_->labels_.size() > 0) {</div>
-<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  node[<span class="stringliteral">"labels"</span>];</div>
-<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& label : impl_->labels_) {</div>
-<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  node[<span class="stringliteral">"labels"</span>].PushBack();</div>
-<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  node[<span class="stringliteral">"labels"</span>][node[<span class="stringliteral">"labels"</span>].Size() - 1] = label;</div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  }</div>
-<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  }</div>
-<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& pg : impl_->property_groups_) {</div>
-<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  ::Yaml::Node pg_node;</div>
-<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  <span class="keywordflow">if</span> (!pg->GetPrefix().empty()) {</div>
-<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  pg_node[<span class="stringliteral">"prefix"</span>] = pg->GetPrefix();</div>
-<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  }</div>
-<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  pg_node[<span class="stringliteral">"file_type"</span>] = FileTypeToString(pg->GetFileType());</div>
-<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& p : pg->GetProperties()) {</div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  ::Yaml::Node p_node;</div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  p_node[<span class="stringliteral">"name"</span>] = p.name;</div>
-<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  p_node[<span class="stringliteral">"data_type"</span>] = p.type->ToTypeName();</div>
-<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  p_node[<span class="stringliteral">"is_primary"</span>] = p.is_primary ? <span class="stringliteral">"true"</span> : <span class="stringliteral">"false"</span>;</div>
-<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  p_node[<span class="stringliteral">"is_nullable"</span>] = p.is_nullable ? <span class="stringliteral">"true"</span> : <span class="stringliteral">"false"</span>;</div>
-<div class="line"><a name="l00511"></a><span class="lineno"> 511</span>  <span class="keywordflow">if</span> (p.cardinality != Cardinality::SINGLE) {</div>
-<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  p_node[<span class="stringliteral">"cardinality"</span>] = CardinalityToString(p.cardinality);</div>
-<div class="line"><a name="l00513"></a><span class="lineno"> 513</span>  }</div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  pg_node[<span class="stringliteral">"properties"</span>].PushBack();</div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  pg_node[<span class="stringliteral">"properties"</span>][pg_node[<span class="stringliteral">"properties"</span>].Size() - 1] = p_node;</div>
-<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  }</div>
-<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  node[<span class="stringliteral">"property_groups"</span>].PushBack();</div>
-<div class="line"><a name="l00518"></a><span class="lineno"> 518</span>  node[<span class="stringliteral">"property_groups"</span>][node[<span class="stringliteral">"property_groups"</span>].Size() - 1] = pg_node;</div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  }</div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="keywordflow">if</span> (impl_->version_ != <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  node[<span class="stringliteral">"version"</span>] = impl_->version_->ToString();</div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  }</div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  ::Yaml::Serialize(node, dump_string);</div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  } <span class="keywordflow">catch</span> (<span class="keyword">const</span> std::exception& e) {</div>
-<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"Failed to dump vertex info: "</span>, e.what());</div>
-<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  }</div>
-<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <span class="keywordflow">return</span> dump_string;</div>
-<div class="line"><a name="l00528"></a><span class="lineno"> 528</span> }</div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  </div>
-<div class="line"><a name="l00530"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#afd42b99a43507a9edb1825e7e104d1e7"> 530</a></span> <a class="code" href="classgraphar_1_1_status.html">Status</a> <a class="code" href="classgraphar_1_1_vertex_info.html#afd42b99a43507a9edb1825e7e104d1e7">VertexInfo::Save</a>(<span class="keyword">const</span> std::string& path)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  std::string no_url_path;</div>
-<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> fs, FileSystemFromUriOrPath(path, &no_url_path));</div>
-<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> yaml_content, this-><a class="code" href="classgraphar_1_1_vertex_info.html#adc0a253c371a004324ffae6e8abbdbc7">Dump</a>());</div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="keywordflow">return</span> fs->WriteValueToFile(yaml_content, no_url_path);</div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span> }</div>
-<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  </div>
-<div class="line"><a name="l00537"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info_1_1_impl.html"> 537</a></span> <span class="keyword">class </span><a class="code" href="classgraphar_1_1_edge_info_1_1_impl.html">EdgeInfo::Impl</a> {</div>
-<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  <a class="code" href="classgraphar_1_1_edge_info_1_1_impl.html">Impl</a>(<span class="keyword">const</span> std::string& src_type, <span class="keyword">const</span> std::string& edge_type,</div>
-<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  <span class="keyword">const</span> std::string& dst_type, IdType chunk_size, IdType src_chunk_size,</div>
-<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  IdType dst_chunk_size, <span class="keywordtype">bool</span> directed, <span class="keyword">const</span> std::string& prefix,</div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  <span class="keyword">const</span> AdjacentListVector& adjacent_lists,</div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <span class="keyword">const</span> PropertyGroupVector& property_groups,</div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  std::shared_ptr<const InfoVersion> <a class="code" href="classgraphar_1_1_edge_info.html#a9440bef05f4fa689662f26a9ef0117c1">version</a>)</div>
-<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  : src_type_(src_type),</div>
-<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  edge_type_(edge_type),</div>
-<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  dst_type_(dst_type),</div>
-<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  chunk_size_(chunk_size),</div>
-<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  src_chunk_size_(src_chunk_size),</div>
-<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  dst_chunk_size_(dst_chunk_size),</div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  directed_(directed),</div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  prefix_(prefix),</div>
-<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  adjacent_lists_(std::move(adjacent_lists)),</div>
-<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  property_groups_(std::move(property_groups)),</div>
-<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  version_(std::move(<a class="code" href="classgraphar_1_1_edge_info.html#a9440bef05f4fa689662f26a9ef0117c1">version</a>)) {</div>
-<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <span class="keywordflow">if</span> (prefix_.empty()) {</div>
-<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  prefix_ = src_type_ + REGULAR_SEPARATOR + edge_type_ + REGULAR_SEPARATOR +</div>
-<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  dst_type_ + <span class="stringliteral">"/"</span>; <span class="comment">// default prefix</span></div>
-<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  }</div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < adjacent_lists_.size(); i++) {</div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <span class="keywordflow">if</span> (!adjacent_lists_[i]) {</div>
-<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  <span class="keywordflow">continue</span>;</div>
-<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  }</div>
-<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  </div>
-<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  <span class="keyword">auto</span> adj_list_type = adjacent_lists_[i]->GetType();</div>
-<div class="line"><a name="l00566"></a><span class="lineno"> 566</span>  adjacent_list_type_to_index_[adj_list_type] = i;</div>
-<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  }</div>
-<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < property_groups_.size(); i++) {</div>
-<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  <span class="keyword">const</span> <span class="keyword">auto</span>& pg = property_groups_[i];</div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="keywordflow">if</span> (!pg) {</div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  <span class="keywordflow">continue</span>;</div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  }</div>
-<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& p : pg->GetProperties()) {</div>
-<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  property_name_to_index_.emplace(p.name, i);</div>
-<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  property_name_to_primary_.emplace(p.name, p.is_primary);</div>
-<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  property_name_to_nullable_.emplace(p.name, p.is_nullable);</div>
-<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  property_name_to_type_.emplace(p.name, p.type);</div>
-<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  }</div>
-<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  }</div>
-<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  }</div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  </div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  <span class="keywordtype">bool</span> is_validated() <span class="keyword">const</span> noexcept {</div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  <span class="keywordflow">if</span> (src_type_.empty() || edge_type_.empty() || dst_type_.empty() ||</div>
-<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  chunk_size_ <= 0 || src_chunk_size_ <= 0 || dst_chunk_size_ <= 0 ||</div>
-<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  prefix_.empty() || adjacent_lists_.empty()) {</div>
-<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  }</div>
-<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  </div>
-<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& al : adjacent_lists_) {</div>
-<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  <span class="keywordflow">if</span> (!al || !al->IsValidated()) {</div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  }</div>
-<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  }</div>
-<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  </div>
-<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  std::unordered_set<std::string> check_property_unique_set;</div>
-<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& pg : property_groups_) {</div>
-<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <span class="comment">// check if property group is validated</span></div>
-<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <span class="keywordflow">if</span> (!pg || !pg->IsValidated()) {</div>
-<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  }</div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <span class="comment">// check if property name is unique in all property groups</span></div>
-<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& p : pg->GetProperties()) {</div>
-<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  <span class="keywordflow">if</span> (p.cardinality != Cardinality::SINGLE) {</div>
-<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <span class="comment">// edge property only supports single cardinality</span></div>
-<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  std::cout</div>
-<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  << <span class="stringliteral">"Edge property only supports single cardinality, but got: "</span></div>
-<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  << CardinalityToString(p.cardinality) << std::endl;</div>
-<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  }</div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  <span class="keywordflow">if</span> (check_property_unique_set.find(p.name) !=</div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  check_property_unique_set.end()) {</div>
-<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  check_property_unique_set.insert(p.name);</div>
-<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  }</div>
-<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  }</div>
-<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  }</div>
-<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  <span class="keywordflow">if</span> (adjacent_lists_.size() != adjacent_list_type_to_index_.size()) {</div>
-<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  }</div>
-<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  }</div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  </div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  std::string src_type_;</div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  std::string edge_type_;</div>
-<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  std::string dst_type_;</div>
-<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  IdType chunk_size_;</div>
-<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  IdType src_chunk_size_;</div>
-<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  IdType dst_chunk_size_;</div>
-<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  <span class="keywordtype">bool</span> directed_;</div>
-<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  std::string prefix_;</div>
-<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  AdjacentListVector adjacent_lists_;</div>
-<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  PropertyGroupVector property_groups_;</div>
-<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  std::unordered_map<AdjListType, int> adjacent_list_type_to_index_;</div>
-<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  std::unordered_map<std::string, int> property_name_to_index_;</div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  std::unordered_map<std::string, bool> property_name_to_primary_;</div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  std::unordered_map<std::string, bool> property_name_to_nullable_;</div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  std::unordered_map<std::string, std::shared_ptr<DataType>></div>
-<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  property_name_to_type_;</div>
-<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  std::shared_ptr<const InfoVersion> version_;</div>
-<div class="line"><a name="l00641"></a><span class="lineno"> 641</span> };</div>
-<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  </div>
-<div class="line"><a name="l00643"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#ab3c32f3112dcf08304676eeb95545b55"> 643</a></span> <a class="code" href="classgraphar_1_1_edge_info.html#ab3c32f3112dcf08304676eeb95545b55">EdgeInfo::EdgeInfo</a>(<span class="keyword">const</span> std::string& src_type, <span class="keyword">const</span> std::string& edge_type,</div>
-<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  <span class="keyword">const</span> std::string& dst_type, IdType chunk_size,</div>
-<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  IdType src_chunk_size, IdType dst_chunk_size, <span class="keywordtype">bool</span> directed,</div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  <span class="keyword">const</span> AdjacentListVector& adjacent_lists,</div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  <span class="keyword">const</span> PropertyGroupVector& property_groups,</div>
-<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  <span class="keyword">const</span> std::string& prefix,</div>
-<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  std::shared_ptr<const InfoVersion> version)</div>
-<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  : impl_(new <a class="code" href="classgraphar_1_1_edge_info_1_1_impl.html">Impl</a>(src_type, edge_type, dst_type, chunk_size, src_chunk_size,</div>
-<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  dst_chunk_size, directed, prefix, adjacent_lists,</div>
-<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  property_groups, version)) {}</div>
-<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  </div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span> EdgeInfo::~EdgeInfo() = <span class="keywordflow">default</span>;</div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  </div>
-<div class="line"><a name="l00656"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a994023f50f2f952cc1361b0f9928dec4"> 656</a></span> <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_edge_info.html#a994023f50f2f952cc1361b0f9928dec4">EdgeInfo::GetSrcType</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->src_type_; }</div>
-<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  </div>
-<div class="line"><a name="l00658"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a03c9b4f4b0edcf47f2e5746e8f9f6db0"> 658</a></span> <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_edge_info.html#a03c9b4f4b0edcf47f2e5746e8f9f6db0">EdgeInfo::GetEdgeType</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->edge_type_; }</div>
+<div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="classgraphar_1_1_adjacent_list.html#a592ba95843997b321f5545e950f03a57"> 191</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_adjacent_list.html#a592ba95843997b321f5545e950f03a57">AdjacentList::IsValidated</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00192"></a><span class="lineno"> 192</span>  <span class="keywordflow">if</span> (type_ != AdjListType::unordered_by_source &&</div>
+<div class="line"><a name="l00193"></a><span class="lineno"> 193</span>  type_ != AdjListType::ordered_by_source &&</div>
+<div class="line"><a name="l00194"></a><span class="lineno"> 194</span>  type_ != AdjListType::unordered_by_dest &&</div>
+<div class="line"><a name="l00195"></a><span class="lineno"> 195</span>  type_ != AdjListType::ordered_by_dest) {</div>
+<div class="line"><a name="l00196"></a><span class="lineno"> 196</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00197"></a><span class="lineno"> 197</span>  }</div>
+<div class="line"><a name="l00198"></a><span class="lineno"> 198</span>  <span class="keywordflow">if</span> (prefix_.empty() ||</div>
+<div class="line"><a name="l00199"></a><span class="lineno"> 199</span>  (file_type_ != FileType::CSV && file_type_ != FileType::PARQUET &&</div>
+<div class="line"><a name="l00200"></a><span class="lineno"> 200</span>  file_type_ != FileType::ORC)) {</div>
+<div class="line"><a name="l00201"></a><span class="lineno"> 201</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00202"></a><span class="lineno"> 202</span>  }</div>
+<div class="line"><a name="l00203"></a><span class="lineno"> 203</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00204"></a><span class="lineno"> 204</span> }</div>
+<div class="line"><a name="l00205"></a><span class="lineno"> 205</span>  </div>
+<div class="line"><a name="l00206"></a><span class="lineno"> 206</span> std::shared_ptr<AdjacentList> CreateAdjacentList(AdjListType type,</div>
+<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  FileType file_type,</div>
+<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  <span class="keyword">const</span> std::string& prefix) {</div>
+<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  <span class="keywordflow">return</span> std::make_shared<AdjacentList>(type, file_type, prefix);</div>
+<div class="line"><a name="l00210"></a><span class="lineno"> 210</span> }</div>
+<div class="line"><a name="l00211"></a><span class="lineno"> 211</span>  </div>
+<div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info_1_1_impl.html"> 212</a></span> <span class="keyword">class </span><a class="code" href="classgraphar_1_1_vertex_info_1_1_impl.html">VertexInfo::Impl</a> {</div>
+<div class="line"><a name="l00213"></a><span class="lineno"> 213</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00214"></a><span class="lineno"> 214</span>  <a class="code" href="classgraphar_1_1_vertex_info_1_1_impl.html">Impl</a>(<span class="keyword">const</span> std::string& type, IdType chunk_size, <span class="keyword">const</span> std::string& prefix,</div>
+<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keyword">const</span> PropertyGroupVector& property_groups,</div>
+<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  <span class="keyword">const</span> std::vector<std::string>& labels,</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  std::shared_ptr<const InfoVersion> <a class="code" href="classgraphar_1_1_vertex_info.html#a47c84aab28674b5250a26c97806f2f48">version</a>)</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  : type_(type),</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  chunk_size_(chunk_size),</div>
+<div class="line"><a name="l00220"></a><span class="lineno"> 220</span>  property_groups_(std::move(property_groups)),</div>
+<div class="line"><a name="l00221"></a><span class="lineno"> 221</span>  labels_(labels),</div>
+<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  prefix_(prefix),</div>
+<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  version_(std::move(<a class="code" href="classgraphar_1_1_vertex_info.html#a47c84aab28674b5250a26c97806f2f48">version</a>)) {</div>
+<div class="line"><a name="l00224"></a><span class="lineno"> 224</span>  <span class="keywordflow">if</span> (prefix_.empty()) {</div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  prefix_ = type_ + <span class="stringliteral">"/"</span>; <span class="comment">// default prefix</span></div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  }</div>
+<div class="line"><a name="l00227"></a><span class="lineno"> 227</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < property_groups_.size(); i++) {</div>
+<div class="line"><a name="l00228"></a><span class="lineno"> 228</span>  <span class="keyword">const</span> <span class="keyword">auto</span>& pg = property_groups_[i];</div>
+<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keywordflow">if</span> (!pg) {</div>
+<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00231"></a><span class="lineno"> 231</span>  }</div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& p : pg->GetProperties()) {</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  property_name_to_index_.emplace(p.name, i);</div>
+<div class="line"><a name="l00234"></a><span class="lineno"> 234</span>  property_name_to_primary_.emplace(p.name, p.is_primary);</div>
+<div class="line"><a name="l00235"></a><span class="lineno"> 235</span>  property_name_to_nullable_.emplace(p.name, p.is_nullable);</div>
+<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  property_name_to_type_.emplace(p.name, p.type);</div>
+<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  property_name_to_cardinality_.emplace(p.name, p.cardinality);</div>
+<div class="line"><a name="l00238"></a><span class="lineno"> 238</span>  }</div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  }</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  }</div>
+<div class="line"><a name="l00241"></a><span class="lineno"> 241</span>  </div>
+<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keywordtype">bool</span> is_validated() <span class="keyword">const</span> noexcept {</div>
+<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  <span class="keywordflow">if</span> (type_.empty() || chunk_size_ <= 0 || prefix_.empty()) {</div>
+<div class="line"><a name="l00244"></a><span class="lineno"> 244</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00245"></a><span class="lineno"> 245</span>  }</div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  std::unordered_set<std::string> check_property_unique_set;</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& pg : property_groups_) {</div>
+<div class="line"><a name="l00248"></a><span class="lineno"> 248</span>  <span class="comment">// check if property group is validated</span></div>
+<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordflow">if</span> (!pg || !pg->IsValidated()) {</div>
+<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00251"></a><span class="lineno"> 251</span>  }</div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="comment">// check if property name is unique in all property groups</span></div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& p : pg->GetProperties()) {</div>
+<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keywordflow">if</span> (check_property_unique_set.find(p.name) !=</div>
+<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  check_property_unique_set.end()) {</div>
+<div class="line"><a name="l00256"></a><span class="lineno"> 256</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00257"></a><span class="lineno"> 257</span>  } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00258"></a><span class="lineno"> 258</span>  check_property_unique_set.insert(p.name);</div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  }</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  }</div>
+<div class="line"><a name="l00261"></a><span class="lineno"> 261</span>  }</div>
+<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  </div>
+<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  }</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  </div>
+<div class="line"><a name="l00266"></a><span class="lineno"> 266</span>  std::string type_;</div>
+<div class="line"><a name="l00267"></a><span class="lineno"> 267</span>  IdType chunk_size_;</div>
+<div class="line"><a name="l00268"></a><span class="lineno"> 268</span>  PropertyGroupVector property_groups_;</div>
+<div class="line"><a name="l00269"></a><span class="lineno"> 269</span>  std::vector<std::string> labels_;</div>
+<div class="line"><a name="l00270"></a><span class="lineno"> 270</span>  std::string prefix_;</div>
+<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  std::shared_ptr<const InfoVersion> version_;</div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  std::unordered_map<std::string, int> property_name_to_index_;</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  std::unordered_map<std::string, bool> property_name_to_primary_;</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  std::unordered_map<std::string, bool> property_name_to_nullable_;</div>
+<div class="line"><a name="l00275"></a><span class="lineno"> 275</span>  std::unordered_map<std::string, std::shared_ptr<DataType>></div>
+<div class="line"><a name="l00276"></a><span class="lineno"> 276</span>  property_name_to_type_;</div>
+<div class="line"><a name="l00277"></a><span class="lineno"> 277</span>  std::unordered_map<std::string, Cardinality> property_name_to_cardinality_;</div>
+<div class="line"><a name="l00278"></a><span class="lineno"> 278</span> };</div>
+<div class="line"><a name="l00279"></a><span class="lineno"> 279</span>  </div>
+<div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#acddb12cfcf7c6bfe1f1937f984828312"> 280</a></span> <a class="code" href="classgraphar_1_1_vertex_info.html#acddb12cfcf7c6bfe1f1937f984828312">VertexInfo::VertexInfo</a>(<span class="keyword">const</span> std::string& type, IdType chunk_size,</div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keyword">const</span> PropertyGroupVector& property_groups,</div>
+<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  <span class="keyword">const</span> std::vector<std::string>& labels,</div>
+<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  <span class="keyword">const</span> std::string& prefix,</div>
+<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  std::shared_ptr<const InfoVersion> version)</div>
+<div class="line"><a name="l00285"></a><span class="lineno"> 285</span>  : impl_(new <a class="code" href="classgraphar_1_1_vertex_info_1_1_impl.html">Impl</a>(type, chunk_size, prefix, property_groups, labels,</div>
+<div class="line"><a name="l00286"></a><span class="lineno"> 286</span>  version)) {}</div>
+<div class="line"><a name="l00287"></a><span class="lineno"> 287</span>  </div>
+<div class="line"><a name="l00288"></a><span class="lineno"> 288</span> VertexInfo::~VertexInfo() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l00289"></a><span class="lineno"> 289</span>  </div>
+<div class="line"><a name="l00290"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a2364ef208346bbd4d468ee78cfc6a1a3"> 290</a></span> <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_vertex_info.html#a2364ef208346bbd4d468ee78cfc6a1a3">VertexInfo::GetType</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->type_; }</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  </div>
+<div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a39a607d51da7e73a0fae473e90a61825"> 292</a></span> IdType <a class="code" href="classgraphar_1_1_vertex_info.html#a39a607d51da7e73a0fae473e90a61825">VertexInfo::GetChunkSize</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->chunk_size_; }</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  </div>
+<div class="line"><a name="l00294"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a8fb76a180c2fb8192961a27862f5aa69"> 294</a></span> <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_vertex_info.html#a8fb76a180c2fb8192961a27862f5aa69">VertexInfo::GetPrefix</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->prefix_; }</div>
+<div class="line"><a name="l00295"></a><span class="lineno"> 295</span>  </div>
+<div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a34a49ce4905632889db3f969986cbe75"> 296</a></span> <span class="keyword">const</span> std::vector<std::string>& <a class="code" href="classgraphar_1_1_vertex_info.html#a34a49ce4905632889db3f969986cbe75">VertexInfo::GetLabels</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00297"></a><span class="lineno"> 297</span>  <span class="keywordflow">return</span> impl_->labels_;</div>
+<div class="line"><a name="l00298"></a><span class="lineno"> 298</span> }</div>
+<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  </div>
+<div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a47c84aab28674b5250a26c97806f2f48"> 300</a></span> <span class="keyword">const</span> std::shared_ptr<const InfoVersion>& <a class="code" href="classgraphar_1_1_vertex_info.html#a47c84aab28674b5250a26c97806f2f48">VertexInfo::version</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordflow">return</span> impl_->version_;</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span> }</div>
+<div class="line"><a name="l00303"></a><span class="lineno"> 303</span>  </div>
+<div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a65faa894acf765eae9c7d4e34dff6306"> 304</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_vertex_info.html#a65faa894acf765eae9c7d4e34dff6306">VertexInfo::GetFilePath</a>(</div>
+<div class="line"><a name="l00305"></a><span class="lineno"> 305</span>  std::shared_ptr<PropertyGroup> property_group, IdType chunk_index)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00306"></a><span class="lineno"> 306</span>  <span class="keywordflow">if</span> (property_group == <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"property group is nullptr"</span>);</div>
+<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  }</div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <span class="keywordflow">return</span> BuildPath({impl_->prefix_, property_group->GetPrefix()}) + <span class="stringliteral">"chunk"</span> +</div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  std::to_string(chunk_index);</div>
+<div class="line"><a name="l00311"></a><span class="lineno"> 311</span> }</div>
+<div class="line"><a name="l00312"></a><span class="lineno"> 312</span>  </div>
+<div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a3214a62ac41be6cb53c22894d2926710"> 313</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_vertex_info.html#a3214a62ac41be6cb53c22894d2926710">VertexInfo::GetPathPrefix</a>(</div>
+<div class="line"><a name="l00314"></a><span class="lineno"> 314</span>  std::shared_ptr<PropertyGroup> property_group)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keywordflow">if</span> (property_group == <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"property group is nullptr"</span>);</div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  }</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  <span class="keywordflow">return</span> BuildPath({impl_->prefix_, property_group->GetPrefix()});</div>
+<div class="line"><a name="l00319"></a><span class="lineno"> 319</span> }</div>
+<div class="line"><a name="l00320"></a><span class="lineno"> 320</span>  </div>
+<div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#aad61b0a40a4bef344fad93cb1332d97d"> 321</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_vertex_info.html#aad61b0a40a4bef344fad93cb1332d97d">VertexInfo::GetVerticesNumFilePath</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00322"></a><span class="lineno"> 322</span>  <span class="keywordflow">return</span> BuildPath({impl_->prefix_}) + <span class="stringliteral">"vertex_count"</span>;</div>
+<div class="line"><a name="l00323"></a><span class="lineno"> 323</span> }</div>
+<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  </div>
+<div class="line"><a name="l00325"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a7917824d18f7c84a02859f18b47e77fe"> 325</a></span> <span class="keywordtype">int</span> <a class="code" href="classgraphar_1_1_vertex_info.html#a7917824d18f7c84a02859f18b47e77fe">VertexInfo::PropertyGroupNum</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(impl_->property_groups_.size());</div>
+<div class="line"><a name="l00327"></a><span class="lineno"> 327</span> }</div>
+<div class="line"><a name="l00328"></a><span class="lineno"> 328</span>  </div>
+<div class="line"><a name="l00329"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a2a4cc44b7db8784bdb0e9691c7ad0fba"> 329</a></span> std::shared_ptr<PropertyGroup> <a class="code" href="classgraphar_1_1_vertex_info.html#a2a4cc44b7db8784bdb0e9691c7ad0fba">VertexInfo::GetPropertyGroup</a>(</div>
+<div class="line"><a name="l00330"></a><span class="lineno"> 330</span>  <span class="keyword">const</span> std::string& property_name)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00331"></a><span class="lineno"> 331</span>  <span class="keywordtype">int</span> i = LookupKeyIndex(impl_->property_name_to_index_, property_name);</div>
+<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="keywordflow">return</span> i == -1 ? nullptr : impl_->property_groups_[i];</div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span> }</div>
+<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  </div>
+<div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#af6106f8fa90d876a0e97f58c7c39db33"> 335</a></span> std::shared_ptr<PropertyGroup> <a class="code" href="classgraphar_1_1_vertex_info.html#af6106f8fa90d876a0e97f58c7c39db33">VertexInfo::GetPropertyGroupByIndex</a>(</div>
+<div class="line"><a name="l00336"></a><span class="lineno"> 336</span>  <span class="keywordtype">int</span> index)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00337"></a><span class="lineno"> 337</span>  <span class="keywordflow">if</span> (index < 0 || index >= <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(impl_->property_groups_.size())) {</div>
+<div class="line"><a name="l00338"></a><span class="lineno"> 338</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l00339"></a><span class="lineno"> 339</span>  }</div>
+<div class="line"><a name="l00340"></a><span class="lineno"> 340</span>  <span class="keywordflow">return</span> impl_->property_groups_[index];</div>
+<div class="line"><a name="l00341"></a><span class="lineno"> 341</span> }</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  </div>
+<div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#aff9aadd406180802facb14d6a4b5e72e"> 343</a></span> <span class="keyword">const</span> PropertyGroupVector& <a class="code" href="classgraphar_1_1_vertex_info.html#aff9aadd406180802facb14d6a4b5e72e">VertexInfo::GetPropertyGroups</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  <span class="keywordflow">return</span> impl_->property_groups_;</div>
+<div class="line"><a name="l00345"></a><span class="lineno"> 345</span> }</div>
+<div class="line"><a name="l00346"></a><span class="lineno"> 346</span>  </div>
+<div class="line"><a name="l00347"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a68f7407348b39115e0fa4d44750e9d37"> 347</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_vertex_info.html#a68f7407348b39115e0fa4d44750e9d37">VertexInfo::IsPrimaryKey</a>(<span class="keyword">const</span> std::string& property_name)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00348"></a><span class="lineno"> 348</span>  <span class="keyword">auto</span> it = impl_->property_name_to_primary_.find(property_name);</div>
+<div class="line"><a name="l00349"></a><span class="lineno"> 349</span>  <span class="keywordflow">if</span> (it == impl_->property_name_to_primary_.end()) {</div>
+<div class="line"><a name="l00350"></a><span class="lineno"> 350</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00351"></a><span class="lineno"> 351</span>  }</div>
+<div class="line"><a name="l00352"></a><span class="lineno"> 352</span>  <span class="keywordflow">return</span> it->second;</div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span> }</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  </div>
+<div class="line"><a name="l00355"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#ad6bc3cbb3ed0c5eaa7fd50298e106a78"> 355</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_vertex_info.html#ad6bc3cbb3ed0c5eaa7fd50298e106a78">VertexInfo::IsNullableKey</a>(<span class="keyword">const</span> std::string& property_name)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00356"></a><span class="lineno"> 356</span>  <span class="keyword">auto</span> it = impl_->property_name_to_nullable_.find(property_name);</div>
+<div class="line"><a name="l00357"></a><span class="lineno"> 357</span>  <span class="keywordflow">if</span> (it == impl_->property_name_to_nullable_.end()) {</div>
+<div class="line"><a name="l00358"></a><span class="lineno"> 358</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00359"></a><span class="lineno"> 359</span>  }</div>
+<div class="line"><a name="l00360"></a><span class="lineno"> 360</span>  <span class="keywordflow">return</span> it->second;</div>
+<div class="line"><a name="l00361"></a><span class="lineno"> 361</span> }</div>
+<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  </div>
+<div class="line"><a name="l00363"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a5d42bec7d8cdb67f1e04b921f484e328"> 363</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_vertex_info.html#a5d42bec7d8cdb67f1e04b921f484e328">VertexInfo::HasProperty</a>(<span class="keyword">const</span> std::string& property_name)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  <span class="keywordflow">return</span> impl_->property_name_to_index_.find(property_name) !=</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  impl_->property_name_to_index_.end();</div>
+<div class="line"><a name="l00366"></a><span class="lineno"> 366</span> }</div>
+<div class="line"><a name="l00367"></a><span class="lineno"> 367</span>  </div>
+<div class="line"><a name="l00368"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a64aca915578185662b4429e5ed265322"> 368</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_vertex_info.html#a64aca915578185662b4429e5ed265322">VertexInfo::HasPropertyGroup</a>(</div>
+<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  <span class="keyword">const</span> std::shared_ptr<PropertyGroup>& property_group)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00370"></a><span class="lineno"> 370</span>  <span class="keywordflow">if</span> (property_group == <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  }</div>
+<div class="line"><a name="l00373"></a><span class="lineno"> 373</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& pg : impl_->property_groups_) {</div>
+<div class="line"><a name="l00374"></a><span class="lineno"> 374</span>  <span class="keywordflow">if</span> (*pg == *property_group) {</div>
+<div class="line"><a name="l00375"></a><span class="lineno"> 375</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00376"></a><span class="lineno"> 376</span>  }</div>
+<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  }</div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span> }</div>
+<div class="line"><a name="l00380"></a><span class="lineno"> 380</span>  </div>
+<div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#acbeedc2afc98e53155bb1f75c9cb465c"> 381</a></span> Result<std::shared_ptr<DataType>> <a class="code" href="classgraphar_1_1_vertex_info.html#acbeedc2afc98e53155bb1f75c9cb465c">VertexInfo::GetPropertyType</a>(</div>
+<div class="line"><a name="l00382"></a><span class="lineno"> 382</span>  <span class="keyword">const</span> std::string& property_name)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00383"></a><span class="lineno"> 383</span>  <span class="keyword">auto</span> it = impl_->property_name_to_type_.find(property_name);</div>
+<div class="line"><a name="l00384"></a><span class="lineno"> 384</span>  <span class="keywordflow">if</span> (it == impl_->property_name_to_type_.end()) {</div>
+<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"property name not found: "</span>, property_name);</div>
+<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  }</div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keywordflow">return</span> it->second;</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span> }</div>
+<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  </div>
+<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> Result<Cardinality> VertexInfo::GetPropertyCardinality(</div>
+<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  <span class="keyword">const</span> std::string& property_name)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00392"></a><span class="lineno"> 392</span>  <span class="keyword">auto</span> it = impl_->property_name_to_cardinality_.find(property_name);</div>
+<div class="line"><a name="l00393"></a><span class="lineno"> 393</span>  <span class="keywordflow">if</span> (it == impl_->property_name_to_cardinality_.end()) {</div>
+<div class="line"><a name="l00394"></a><span class="lineno"> 394</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"property name not found: "</span>, property_name);</div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  }</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  <span class="keywordflow">return</span> it->second;</div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span> }</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  </div>
+<div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a4a70be2aa82d5c435b3271ae766bb54d"> 399</a></span> Result<std::shared_ptr<VertexInfo>> <a class="code" href="classgraphar_1_1_vertex_info.html#a4a70be2aa82d5c435b3271ae766bb54d">VertexInfo::AddPropertyGroup</a>(</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span>  std::shared_ptr<PropertyGroup> property_group)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  <span class="keywordflow">if</span> (property_group == <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l00402"></a><span class="lineno"> 402</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"property group is nullptr"</span>);</div>
+<div class="line"><a name="l00403"></a><span class="lineno"> 403</span>  }</div>
+<div class="line"><a name="l00404"></a><span class="lineno"> 404</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& property : property_group->GetProperties()) {</div>
+<div class="line"><a name="l00405"></a><span class="lineno"> 405</span>  <span class="keywordflow">if</span> (<a class="code" href="classgraphar_1_1_vertex_info.html#a5d42bec7d8cdb67f1e04b921f484e328">HasProperty</a>(property.name)) {</div>
+<div class="line"><a name="l00406"></a><span class="lineno"> 406</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"property in the property group already exists: "</span>,</div>
+<div class="line"><a name="l00407"></a><span class="lineno"> 407</span>  property.name);</div>
+<div class="line"><a name="l00408"></a><span class="lineno"> 408</span>  }</div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  }</div>
+<div class="line"><a name="l00410"></a><span class="lineno"> 410</span>  <span class="keywordflow">return</span> std::make_shared<VertexInfo>(</div>
+<div class="line"><a name="l00411"></a><span class="lineno"> 411</span>  impl_->type_, impl_->chunk_size_,</div>
+<div class="line"><a name="l00412"></a><span class="lineno"> 412</span>  AddVectorElement(impl_->property_groups_, property_group), impl_->labels_,</div>
+<div class="line"><a name="l00413"></a><span class="lineno"> 413</span>  impl_->prefix_, impl_->version_);</div>
+<div class="line"><a name="l00414"></a><span class="lineno"> 414</span> }</div>
+<div class="line"><a name="l00415"></a><span class="lineno"> 415</span>  </div>
+<div class="line"><a name="l00416"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a8432977087cbb207f65b91debc240119"> 416</a></span> Result<std::shared_ptr<VertexInfo>> <a class="code" href="classgraphar_1_1_vertex_info.html#a8432977087cbb207f65b91debc240119">VertexInfo::RemovePropertyGroup</a>(</div>
+<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  std::shared_ptr<PropertyGroup> property_group)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keywordflow">if</span> (property_group == <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"property group is nullptr"</span>);</div>
+<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  }</div>
+<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="keywordtype">int</span> idx = -1;</div>
+<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < impl_->property_groups_.size(); i++) {</div>
+<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  <span class="keywordflow">if</span> (*(impl_->property_groups_[i]) == *property_group) {</div>
+<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  idx = i;</div>
+<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  }</div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  }</div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keywordflow">if</span> (idx == -1) {</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"property group not found"</span>);</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  }</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keywordflow">return</span> std::make_shared<VertexInfo>(</div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  impl_->type_, impl_->chunk_size_,</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  RemoveVectorElement(impl_->property_groups_, <span class="keyword">static_cast<</span><span class="keywordtype">size_t</span><span class="keyword">></span>(idx)),</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  impl_->labels_, impl_->prefix_, impl_->version_);</div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span> }</div>
+<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  </div>
+<div class="line"><a name="l00437"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#a70d2cb4637d4b2909bd34045a39568af"> 437</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_vertex_info.html#a70d2cb4637d4b2909bd34045a39568af">VertexInfo::IsValidated</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->is_validated(); }</div>
+<div class="line"><a name="l00438"></a><span class="lineno"> 438</span>  </div>
+<div class="line"><a name="l00439"></a><span class="lineno"> 439</span> std::shared_ptr<VertexInfo> CreateVertexInfo(</div>
+<div class="line"><a name="l00440"></a><span class="lineno"> 440</span>  <span class="keyword">const</span> std::string& type, IdType chunk_size,</div>
+<div class="line"><a name="l00441"></a><span class="lineno"> 441</span>  <span class="keyword">const</span> PropertyGroupVector& property_groups,</div>
+<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  <span class="keyword">const</span> std::vector<std::string>& labels, <span class="keyword">const</span> std::string& prefix,</div>
+<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  std::shared_ptr<const InfoVersion> version) {</div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  <span class="keywordflow">if</span> (type.empty() || chunk_size <= 0) {</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  }</div>
+<div class="line"><a name="l00447"></a><span class="lineno"> 447</span>  <span class="keywordflow">return</span> std::make_shared<VertexInfo>(type, chunk_size, property_groups, labels,</div>
+<div class="line"><a name="l00448"></a><span class="lineno"> 448</span>  prefix, version);</div>
+<div class="line"><a name="l00449"></a><span class="lineno"> 449</span> }</div>
+<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  </div>
+<div class="line"><a name="l00451"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#af1ade1caa6e70e4b7ce60cf4df7ac50c"> 451</a></span> Result<std::shared_ptr<VertexInfo>> <a class="code" href="classgraphar_1_1_vertex_info.html#af1ade1caa6e70e4b7ce60cf4df7ac50c">VertexInfo::Load</a>(</div>
+<div class="line"><a name="l00452"></a><span class="lineno"> 452</span>  std::shared_ptr<Yaml> yaml) {</div>
+<div class="line"><a name="l00453"></a><span class="lineno"> 453</span>  <span class="keywordflow">if</span> (yaml == <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"yaml shared pointer is nullptr"</span>);</div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  }</div>
+<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  std::string type = yaml->operator[](<span class="stringliteral">"type"</span>).As<std::string>();</div>
+<div class="line"><a name="l00457"></a><span class="lineno"> 457</span>  IdType chunk_size =</div>
+<div class="line"><a name="l00458"></a><span class="lineno"> 458</span>  <span class="keyword">static_cast<</span>IdType<span class="keyword">></span>(yaml->operator[](<span class="stringliteral">"chunk_size"</span>).As<int64_t>());</div>
+<div class="line"><a name="l00459"></a><span class="lineno"> 459</span>  std::string prefix;</div>
+<div class="line"><a name="l00460"></a><span class="lineno"> 460</span>  <span class="keywordflow">if</span> (!yaml->operator[](<span class="stringliteral">"prefix"</span>).IsNone()) {</div>
+<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  prefix = yaml->operator[](<span class="stringliteral">"prefix"</span>).As<std::string>();</div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  }</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  std::vector<std::string> labels;</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  <span class="keyword">const</span> <span class="keyword">auto</span>& labels_node = yaml->operator[](<span class="stringliteral">"labels"</span>);</div>
+<div class="line"><a name="l00465"></a><span class="lineno"> 465</span>  <span class="keywordflow">if</span> (labels_node.IsSequence()) {</div>
+<div class="line"><a name="l00466"></a><span class="lineno"> 466</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = labels_node.Begin(); it != labels_node.End(); it++) {</div>
+<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  labels.push_back((*it).second.As<std::string>());</div>
+<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  }</div>
+<div class="line"><a name="l00469"></a><span class="lineno"> 469</span>  }</div>
+<div class="line"><a name="l00470"></a><span class="lineno"> 470</span>  std::shared_ptr<const InfoVersion> <a class="code" href="classgraphar_1_1_vertex_info.html#a47c84aab28674b5250a26c97806f2f48">version</a> = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l00471"></a><span class="lineno"> 471</span>  <span class="keywordflow">if</span> (!yaml->operator[](<span class="stringliteral">"version"</span>).IsNone()) {</div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  GAR_ASSIGN_OR_RAISE(</div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  <a class="code" href="classgraphar_1_1_vertex_info.html#a47c84aab28674b5250a26c97806f2f48">version</a>,</div>
+<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  <a class="code" href="classgraphar_1_1_info_version.html#a6c149bd120118e7c6803dcac71a7a667">InfoVersion::Parse</a>(yaml->operator[](<span class="stringliteral">"version"</span>).As<std::string>()));</div>
+<div class="line"><a name="l00475"></a><span class="lineno"> 475</span>  }</div>
+<div class="line"><a name="l00476"></a><span class="lineno"> 476</span>  PropertyGroupVector property_groups;</div>
+<div class="line"><a name="l00477"></a><span class="lineno"> 477</span>  <span class="keyword">auto</span> property_groups_node = yaml->operator[](<span class="stringliteral">"property_groups"</span>);</div>
+<div class="line"><a name="l00478"></a><span class="lineno"> 478</span>  <span class="keywordflow">if</span> (!property_groups_node.IsNone()) { <span class="comment">// property_groups exist</span></div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = property_groups_node.Begin();</div>
+<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  it != property_groups_node.End(); it++) {</div>
+<div class="line"><a name="l00481"></a><span class="lineno"> 481</span>  std::string pg_prefix;</div>
+<div class="line"><a name="l00482"></a><span class="lineno"> 482</span>  <span class="keyword">auto</span>& node = (*it).second;</div>
+<div class="line"><a name="l00483"></a><span class="lineno"> 483</span>  <span class="keywordflow">if</span> (!node[<span class="stringliteral">"prefix"</span>].IsNone()) {</div>
+<div class="line"><a name="l00484"></a><span class="lineno"> 484</span>  pg_prefix = node[<span class="stringliteral">"prefix"</span>].As<std::string>();</div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  }</div>
+<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  <span class="keyword">auto</span> file_type = StringToFileType(node[<span class="stringliteral">"file_type"</span>].As<std::string>());</div>
+<div class="line"><a name="l00487"></a><span class="lineno"> 487</span>  std::vector<Property> property_vec;</div>
+<div class="line"><a name="l00488"></a><span class="lineno"> 488</span>  <span class="keyword">auto</span>& properties = node[<span class="stringliteral">"properties"</span>];</div>
+<div class="line"><a name="l00489"></a><span class="lineno"> 489</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> iit = properties.Begin(); iit != properties.End(); iit++) {</div>
+<div class="line"><a name="l00490"></a><span class="lineno"> 490</span>  <span class="keyword">auto</span>& p_node = (*iit).second;</div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="keyword">auto</span> property_name = p_node[<span class="stringliteral">"name"</span>].As<std::string>();</div>
+<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  <span class="keyword">auto</span> property_type =</div>
+<div class="line"><a name="l00493"></a><span class="lineno"> 493</span>  DataType::TypeNameToDataType(p_node[<span class="stringliteral">"data_type"</span>].As<std::string>());</div>
+<div class="line"><a name="l00494"></a><span class="lineno"> 494</span>  <span class="keywordtype">bool</span> is_primary = p_node[<span class="stringliteral">"is_primary"</span>].As<<span class="keywordtype">bool</span>>();</div>
+<div class="line"><a name="l00495"></a><span class="lineno"> 495</span>  <span class="keywordtype">bool</span> is_nullable =</div>
+<div class="line"><a name="l00496"></a><span class="lineno"> 496</span>  p_node[<span class="stringliteral">"is_nullable"</span>].IsNone() || p_node[<span class="stringliteral">"is_nullable"</span>].As<<span class="keywordtype">bool</span>>();</div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  Cardinality cardinality = Cardinality::SINGLE;</div>
+<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  <span class="keywordflow">if</span> (!p_node[<span class="stringliteral">"cardinality"</span>].IsNone()) {</div>
+<div class="line"><a name="l00499"></a><span class="lineno"> 499</span>  cardinality =</div>
+<div class="line"><a name="l00500"></a><span class="lineno"> 500</span>  StringToCardinality(p_node[<span class="stringliteral">"cardinality"</span>].As<std::string>());</div>
+<div class="line"><a name="l00501"></a><span class="lineno"> 501</span>  }</div>
+<div class="line"><a name="l00502"></a><span class="lineno"> 502</span>  property_vec.emplace_back(property_name, property_type, is_primary,</div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  is_nullable, cardinality);</div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  }</div>
+<div class="line"><a name="l00505"></a><span class="lineno"> 505</span>  property_groups.push_back(</div>
+<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  std::make_shared<PropertyGroup>(property_vec, file_type, pg_prefix));</div>
+<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  }</div>
+<div class="line"><a name="l00508"></a><span class="lineno"> 508</span>  }</div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  <span class="keywordflow">return</span> std::make_shared<VertexInfo>(type, chunk_size, property_groups, labels,</div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  prefix, <a class="code" href="classgraphar_1_1_vertex_info.html#a47c84aab28674b5250a26c97806f2f48">version</a>);</div>
+<div class="line"><a name="l00511"></a><span class="lineno"> 511</span> }</div>
+<div class="line"><a name="l00512"></a><span class="lineno"> 512</span>  </div>
+<div class="line"><a name="l00513"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#afc1a3662d2215f157af8ba115307807b"> 513</a></span> Result<std::shared_ptr<VertexInfo>> <a class="code" href="classgraphar_1_1_vertex_info.html#af1ade1caa6e70e4b7ce60cf4df7ac50c">VertexInfo::Load</a>(<span class="keyword">const</span> std::string& input) {</div>
+<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> yaml, <a class="code" href="classgraphar_1_1_yaml.html#a2fff6ba5eaf3e59b489d015f10013179">Yaml::Load</a>(input));</div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_vertex_info.html#af1ade1caa6e70e4b7ce60cf4df7ac50c">VertexInfo::Load</a>(yaml);</div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span> }</div>
+<div class="line"><a name="l00517"></a><span class="lineno"> 517</span>  </div>
+<div class="line"><a name="l00518"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#adc0a253c371a004324ffae6e8abbdbc7"> 518</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_vertex_info.html#adc0a253c371a004324ffae6e8abbdbc7">VertexInfo::Dump</a>() const noexcept {</div>
+<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="keywordflow">if</span> (!<a class="code" href="classgraphar_1_1_vertex_info.html#a70d2cb4637d4b2909bd34045a39568af">IsValidated</a>()) {</div>
+<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"The vertex info is not validated"</span>);</div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  }</div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  std::string dump_string;</div>
+<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  ::Yaml::Node node;</div>
+<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  <span class="keywordflow">try</span> {</div>
+<div class="line"><a name="l00525"></a><span class="lineno"> 525</span>  node[<span class="stringliteral">"type"</span>] = impl_->type_;</div>
+<div class="line"><a name="l00526"></a><span class="lineno"> 526</span>  node[<span class="stringliteral">"chunk_size"</span>] = std::to_string(impl_->chunk_size_);</div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  node[<span class="stringliteral">"prefix"</span>] = impl_->prefix_;</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="keywordflow">if</span> (impl_->labels_.size() > 0) {</div>
+<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  node[<span class="stringliteral">"labels"</span>];</div>
+<div class="line"><a name="l00530"></a><span class="lineno"> 530</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& label : impl_->labels_) {</div>
+<div class="line"><a name="l00531"></a><span class="lineno"> 531</span>  node[<span class="stringliteral">"labels"</span>].PushBack();</div>
+<div class="line"><a name="l00532"></a><span class="lineno"> 532</span>  node[<span class="stringliteral">"labels"</span>][node[<span class="stringliteral">"labels"</span>].Size() - 1] = label;</div>
+<div class="line"><a name="l00533"></a><span class="lineno"> 533</span>  }</div>
+<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  }</div>
+<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& pg : impl_->property_groups_) {</div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  ::Yaml::Node pg_node;</div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  <span class="keywordflow">if</span> (!pg->GetPrefix().empty()) {</div>
+<div class="line"><a name="l00538"></a><span class="lineno"> 538</span>  pg_node[<span class="stringliteral">"prefix"</span>] = pg->GetPrefix();</div>
+<div class="line"><a name="l00539"></a><span class="lineno"> 539</span>  }</div>
+<div class="line"><a name="l00540"></a><span class="lineno"> 540</span>  pg_node[<span class="stringliteral">"file_type"</span>] = FileTypeToString(pg->GetFileType());</div>
+<div class="line"><a name="l00541"></a><span class="lineno"> 541</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& p : pg->GetProperties()) {</div>
+<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  ::Yaml::Node p_node;</div>
+<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  p_node[<span class="stringliteral">"name"</span>] = p.name;</div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  p_node[<span class="stringliteral">"data_type"</span>] = p.type->ToTypeName();</div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  p_node[<span class="stringliteral">"is_primary"</span>] = p.is_primary ? <span class="stringliteral">"true"</span> : <span class="stringliteral">"false"</span>;</div>
+<div class="line"><a name="l00546"></a><span class="lineno"> 546</span>  p_node[<span class="stringliteral">"is_nullable"</span>] = p.is_nullable ? <span class="stringliteral">"true"</span> : <span class="stringliteral">"false"</span>;</div>
+<div class="line"><a name="l00547"></a><span class="lineno"> 547</span>  <span class="keywordflow">if</span> (p.cardinality != Cardinality::SINGLE) {</div>
+<div class="line"><a name="l00548"></a><span class="lineno"> 548</span>  p_node[<span class="stringliteral">"cardinality"</span>] = CardinalityToString(p.cardinality);</div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  }</div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  pg_node[<span class="stringliteral">"properties"</span>].PushBack();</div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  pg_node[<span class="stringliteral">"properties"</span>][pg_node[<span class="stringliteral">"properties"</span>].Size() - 1] = p_node;</div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  }</div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  node[<span class="stringliteral">"property_groups"</span>].PushBack();</div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  node[<span class="stringliteral">"property_groups"</span>][node[<span class="stringliteral">"property_groups"</span>].Size() - 1] = pg_node;</div>
+<div class="line"><a name="l00555"></a><span class="lineno"> 555</span>  }</div>
+<div class="line"><a name="l00556"></a><span class="lineno"> 556</span>  <span class="keywordflow">if</span> (impl_->version_ != <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l00557"></a><span class="lineno"> 557</span>  node[<span class="stringliteral">"version"</span>] = impl_->version_->ToString();</div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  }</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  ::Yaml::Serialize(node, dump_string);</div>
+<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  } <span class="keywordflow">catch</span> (<span class="keyword">const</span> std::exception& e) {</div>
+<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"Failed to dump vertex info: "</span>, e.what());</div>
+<div class="line"><a name="l00562"></a><span class="lineno"> 562</span>  }</div>
+<div class="line"><a name="l00563"></a><span class="lineno"> 563</span>  <span class="keywordflow">return</span> dump_string;</div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span> }</div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  </div>
+<div class="line"><a name="l00566"></a><span class="lineno"><a class="line" href="classgraphar_1_1_vertex_info.html#afd42b99a43507a9edb1825e7e104d1e7"> 566</a></span> <a class="code" href="classgraphar_1_1_status.html">Status</a> <a class="code" href="classgraphar_1_1_vertex_info.html#afd42b99a43507a9edb1825e7e104d1e7">VertexInfo::Save</a>(<span class="keyword">const</span> std::string& path)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00567"></a><span class="lineno"> 567</span>  std::string no_url_path;</div>
+<div class="line"><a name="l00568"></a><span class="lineno"> 568</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> fs, FileSystemFromUriOrPath(path, &no_url_path));</div>
+<div class="line"><a name="l00569"></a><span class="lineno"> 569</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> yaml_content, this-><a class="code" href="classgraphar_1_1_vertex_info.html#adc0a253c371a004324ffae6e8abbdbc7">Dump</a>());</div>
+<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  <span class="keywordflow">return</span> fs->WriteValueToFile(yaml_content, no_url_path);</div>
+<div class="line"><a name="l00571"></a><span class="lineno"> 571</span> }</div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  </div>
+<div class="line"><a name="l00573"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info_1_1_impl.html"> 573</a></span> <span class="keyword">class </span><a class="code" href="classgraphar_1_1_edge_info_1_1_impl.html">EdgeInfo::Impl</a> {</div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00575"></a><span class="lineno"> 575</span>  <a class="code" href="classgraphar_1_1_edge_info_1_1_impl.html">Impl</a>(<span class="keyword">const</span> std::string& src_type, <span class="keyword">const</span> std::string& edge_type,</div>
+<div class="line"><a name="l00576"></a><span class="lineno"> 576</span>  <span class="keyword">const</span> std::string& dst_type, IdType chunk_size, IdType src_chunk_size,</div>
+<div class="line"><a name="l00577"></a><span class="lineno"> 577</span>  IdType dst_chunk_size, <span class="keywordtype">bool</span> directed, <span class="keyword">const</span> std::string& prefix,</div>
+<div class="line"><a name="l00578"></a><span class="lineno"> 578</span>  <span class="keyword">const</span> AdjacentListVector& adjacent_lists,</div>
+<div class="line"><a name="l00579"></a><span class="lineno"> 579</span>  <span class="keyword">const</span> PropertyGroupVector& property_groups,</div>
+<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  std::shared_ptr<const InfoVersion> <a class="code" href="classgraphar_1_1_edge_info.html#a9440bef05f4fa689662f26a9ef0117c1">version</a>)</div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  : src_type_(src_type),</div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  edge_type_(edge_type),</div>
+<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  dst_type_(dst_type),</div>
+<div class="line"><a name="l00584"></a><span class="lineno"> 584</span>  chunk_size_(chunk_size),</div>
+<div class="line"><a name="l00585"></a><span class="lineno"> 585</span>  src_chunk_size_(src_chunk_size),</div>
+<div class="line"><a name="l00586"></a><span class="lineno"> 586</span>  dst_chunk_size_(dst_chunk_size),</div>
+<div class="line"><a name="l00587"></a><span class="lineno"> 587</span>  directed_(directed),</div>
+<div class="line"><a name="l00588"></a><span class="lineno"> 588</span>  prefix_(prefix),</div>
+<div class="line"><a name="l00589"></a><span class="lineno"> 589</span>  adjacent_lists_(std::move(adjacent_lists)),</div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  property_groups_(std::move(property_groups)),</div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  version_(std::move(<a class="code" href="classgraphar_1_1_edge_info.html#a9440bef05f4fa689662f26a9ef0117c1">version</a>)) {</div>
+<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  <span class="keywordflow">if</span> (prefix_.empty()) {</div>
+<div class="line"><a name="l00593"></a><span class="lineno"> 593</span>  prefix_ = src_type_ + REGULAR_SEPARATOR + edge_type_ + REGULAR_SEPARATOR +</div>
+<div class="line"><a name="l00594"></a><span class="lineno"> 594</span>  dst_type_ + <span class="stringliteral">"/"</span>; <span class="comment">// default prefix</span></div>
+<div class="line"><a name="l00595"></a><span class="lineno"> 595</span>  }</div>
+<div class="line"><a name="l00596"></a><span class="lineno"> 596</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < adjacent_lists_.size(); i++) {</div>
+<div class="line"><a name="l00597"></a><span class="lineno"> 597</span>  <span class="keywordflow">if</span> (!adjacent_lists_[i]) {</div>
+<div class="line"><a name="l00598"></a><span class="lineno"> 598</span>  <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00599"></a><span class="lineno"> 599</span>  }</div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  </div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  <span class="keyword">auto</span> adj_list_type = adjacent_lists_[i]->GetType();</div>
+<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  adjacent_list_type_to_index_[adj_list_type] = i;</div>
+<div class="line"><a name="l00603"></a><span class="lineno"> 603</span>  }</div>
+<div class="line"><a name="l00604"></a><span class="lineno"> 604</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < property_groups_.size(); i++) {</div>
+<div class="line"><a name="l00605"></a><span class="lineno"> 605</span>  <span class="keyword">const</span> <span class="keyword">auto</span>& pg = property_groups_[i];</div>
+<div class="line"><a name="l00606"></a><span class="lineno"> 606</span>  <span class="keywordflow">if</span> (!pg) {</div>
+<div class="line"><a name="l00607"></a><span class="lineno"> 607</span>  <span class="keywordflow">continue</span>;</div>
+<div class="line"><a name="l00608"></a><span class="lineno"> 608</span>  }</div>
+<div class="line"><a name="l00609"></a><span class="lineno"> 609</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& p : pg->GetProperties()) {</div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  property_name_to_index_.emplace(p.name, i);</div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  property_name_to_primary_.emplace(p.name, p.is_primary);</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  property_name_to_nullable_.emplace(p.name, p.is_nullable);</div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  property_name_to_type_.emplace(p.name, p.type);</div>
+<div class="line"><a name="l00614"></a><span class="lineno"> 614</span>  }</div>
+<div class="line"><a name="l00615"></a><span class="lineno"> 615</span>  }</div>
+<div class="line"><a name="l00616"></a><span class="lineno"> 616</span>  }</div>
+<div class="line"><a name="l00617"></a><span class="lineno"> 617</span>  </div>
+<div class="line"><a name="l00618"></a><span class="lineno"> 618</span>  <span class="keywordtype">bool</span> is_validated() <span class="keyword">const</span> noexcept {</div>
+<div class="line"><a name="l00619"></a><span class="lineno"> 619</span>  <span class="keywordflow">if</span> (src_type_.empty() || edge_type_.empty() || dst_type_.empty() ||</div>
+<div class="line"><a name="l00620"></a><span class="lineno"> 620</span>  chunk_size_ <= 0 || src_chunk_size_ <= 0 || dst_chunk_size_ <= 0 ||</div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  prefix_.empty() || adjacent_lists_.empty()) {</div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  }</div>
+<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  </div>
+<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& al : adjacent_lists_) {</div>
+<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  <span class="keywordflow">if</span> (!al || !al->IsValidated()) {</div>
+<div class="line"><a name="l00627"></a><span class="lineno"> 627</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00628"></a><span class="lineno"> 628</span>  }</div>
+<div class="line"><a name="l00629"></a><span class="lineno"> 629</span>  }</div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  </div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  std::unordered_set<std::string> check_property_unique_set;</div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& pg : property_groups_) {</div>
+<div class="line"><a name="l00633"></a><span class="lineno"> 633</span>  <span class="comment">// check if property group is validated</span></div>
+<div class="line"><a name="l00634"></a><span class="lineno"> 634</span>  <span class="keywordflow">if</span> (!pg || !pg->IsValidated()) {</div>
+<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  }</div>
+<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  <span class="comment">// check if property name is unique in all property groups</span></div>
+<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& p : pg->GetProperties()) {</div>
+<div class="line"><a name="l00639"></a><span class="lineno"> 639</span>  <span class="keywordflow">if</span> (p.cardinality != Cardinality::SINGLE) {</div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  <span class="comment">// edge property only supports single cardinality</span></div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  std::cout</div>
+<div class="line"><a name="l00642"></a><span class="lineno"> 642</span>  << <span class="stringliteral">"Edge property only supports single cardinality, but got: "</span></div>
+<div class="line"><a name="l00643"></a><span class="lineno"> 643</span>  << CardinalityToString(p.cardinality) << std::endl;</div>
+<div class="line"><a name="l00644"></a><span class="lineno"> 644</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00645"></a><span class="lineno"> 645</span>  }</div>
+<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  <span class="keywordflow">if</span> (check_property_unique_set.find(p.name) !=</div>
+<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  check_property_unique_set.end()) {</div>
+<div class="line"><a name="l00648"></a><span class="lineno"> 648</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00649"></a><span class="lineno"> 649</span>  } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l00650"></a><span class="lineno"> 650</span>  check_property_unique_set.insert(p.name);</div>
+<div class="line"><a name="l00651"></a><span class="lineno"> 651</span>  }</div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  }</div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  }</div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  <span class="keywordflow">if</span> (adjacent_lists_.size() != adjacent_list_type_to_index_.size()) {</div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  }</div>
+<div class="line"><a name="l00657"></a><span class="lineno"> 657</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00658"></a><span class="lineno"> 658</span>  }</div>
<div class="line"><a name="l00659"></a><span class="lineno"> 659</span>  </div>
-<div class="line"><a name="l00660"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#ac03180737adf29c79196bbe729b3c929"> 660</a></span> <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_edge_info.html#ac03180737adf29c79196bbe729b3c929">EdgeInfo::GetDstType</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->dst_type_; }</div>
-<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  </div>
-<div class="line"><a name="l00662"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a62c2300185c0655df9b44db39b0a399b"> 662</a></span> IdType <a class="code" href="classgraphar_1_1_edge_info.html#a62c2300185c0655df9b44db39b0a399b">EdgeInfo::GetChunkSize</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->chunk_size_; }</div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  </div>
-<div class="line"><a name="l00664"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#ac07ad975e8ecbdb779038388e3def59e"> 664</a></span> IdType <a class="code" href="classgraphar_1_1_edge_info.html#ac07ad975e8ecbdb779038388e3def59e">EdgeInfo::GetSrcChunkSize</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->src_chunk_size_; }</div>
-<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  </div>
-<div class="line"><a name="l00666"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#abe0fc6672a3fbb5fbd0b5e8775cb8dac"> 666</a></span> IdType <a class="code" href="classgraphar_1_1_edge_info.html#abe0fc6672a3fbb5fbd0b5e8775cb8dac">EdgeInfo::GetDstChunkSize</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->dst_chunk_size_; }</div>
-<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  </div>
-<div class="line"><a name="l00668"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a4ec8810a54411f9a8aba35b2faf29acb"> 668</a></span> <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_edge_info.html#a4ec8810a54411f9a8aba35b2faf29acb">EdgeInfo::GetPrefix</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->prefix_; }</div>
-<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  </div>
-<div class="line"><a name="l00670"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#aad31af465d41c026a35c20828915922e"> 670</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#aad31af465d41c026a35c20828915922e">EdgeInfo::IsDirected</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->directed_; }</div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  </div>
-<div class="line"><a name="l00672"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a9440bef05f4fa689662f26a9ef0117c1"> 672</a></span> <span class="keyword">const</span> std::shared_ptr<const InfoVersion>& <a class="code" href="classgraphar_1_1_edge_info.html#a9440bef05f4fa689662f26a9ef0117c1">EdgeInfo::version</a>()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  <span class="keywordflow">return</span> impl_->version_;</div>
-<div class="line"><a name="l00674"></a><span class="lineno"> 674</span> }</div>
-<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  </div>
-<div class="line"><a name="l00676"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#aaa6633dc8136cec806cbcf42c2cf136d"> 676</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#aaa6633dc8136cec806cbcf42c2cf136d">EdgeInfo::HasAdjacentListType</a>(AdjListType adj_list_type)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  <span class="keywordflow">return</span> impl_->adjacent_list_type_to_index_.find(adj_list_type) !=</div>
-<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  impl_->adjacent_list_type_to_index_.end();</div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span> }</div>
-<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  </div>
-<div class="line"><a name="l00681"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a69182fa8d45bb0e7d4ac230adb1239b2"> 681</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#a69182fa8d45bb0e7d4ac230adb1239b2">EdgeInfo::HasProperty</a>(<span class="keyword">const</span> std::string& property_name)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  <span class="keywordflow">return</span> impl_->property_name_to_index_.find(property_name) !=</div>
-<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  impl_->property_name_to_index_.end();</div>
-<div class="line"><a name="l00684"></a><span class="lineno"> 684</span> }</div>
-<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  </div>
-<div class="line"><a name="l00686"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a857bb686e5d7f579ac0e2a889a53f829"> 686</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#a857bb686e5d7f579ac0e2a889a53f829">EdgeInfo::HasPropertyGroup</a>(</div>
-<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  <span class="keyword">const</span> std::shared_ptr<PropertyGroup>& property_group)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  <span class="keywordflow">if</span> (property_group == <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00690"></a><span class="lineno"> 690</span>  }</div>
-<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& pg : impl_->property_groups_) {</div>
-<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  <span class="keywordflow">if</span> (*pg == *property_group) {</div>
-<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l00694"></a><span class="lineno"> 694</span>  }</div>
-<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  }</div>
-<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00697"></a><span class="lineno"> 697</span> }</div>
-<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  </div>
-<div class="line"><a name="l00699"></a><span class="lineno"> 699</span> std::shared_ptr<AdjacentList> EdgeInfo::GetAdjacentList(</div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  AdjListType adj_list_type)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  <span class="keyword">auto</span> it = impl_->adjacent_list_type_to_index_.find(adj_list_type);</div>
-<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  <span class="keywordflow">if</span> (it == impl_->adjacent_list_type_to_index_.end()) {</div>
-<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
-<div class="line"><a name="l00704"></a><span class="lineno"> 704</span>  }</div>
-<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  <span class="keywordflow">return</span> impl_->adjacent_lists_[it->second];</div>
-<div class="line"><a name="l00706"></a><span class="lineno"> 706</span> }</div>
+<div class="line"><a name="l00660"></a><span class="lineno"> 660</span>  std::string src_type_;</div>
+<div class="line"><a name="l00661"></a><span class="lineno"> 661</span>  std::string edge_type_;</div>
+<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  std::string dst_type_;</div>
+<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  IdType chunk_size_;</div>
+<div class="line"><a name="l00664"></a><span class="lineno"> 664</span>  IdType src_chunk_size_;</div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  IdType dst_chunk_size_;</div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  <span class="keywordtype">bool</span> directed_;</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  std::string prefix_;</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  AdjacentListVector adjacent_lists_;</div>
+<div class="line"><a name="l00669"></a><span class="lineno"> 669</span>  PropertyGroupVector property_groups_;</div>
+<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  std::unordered_map<AdjListType, int> adjacent_list_type_to_index_;</div>
+<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  std::unordered_map<std::string, int> property_name_to_index_;</div>
+<div class="line"><a name="l00672"></a><span class="lineno"> 672</span>  std::unordered_map<std::string, bool> property_name_to_primary_;</div>
+<div class="line"><a name="l00673"></a><span class="lineno"> 673</span>  std::unordered_map<std::string, bool> property_name_to_nullable_;</div>
+<div class="line"><a name="l00674"></a><span class="lineno"> 674</span>  std::unordered_map<std::string, std::shared_ptr<DataType>></div>
+<div class="line"><a name="l00675"></a><span class="lineno"> 675</span>  property_name_to_type_;</div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  std::shared_ptr<const InfoVersion> version_;</div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span> };</div>
+<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  </div>
+<div class="line"><a name="l00679"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#ab3c32f3112dcf08304676eeb95545b55"> 679</a></span> <a class="code" href="classgraphar_1_1_edge_info.html#ab3c32f3112dcf08304676eeb95545b55">EdgeInfo::EdgeInfo</a>(<span class="keyword">const</span> std::string& src_type, <span class="keyword">const</span> std::string& edge_type,</div>
+<div class="line"><a name="l00680"></a><span class="lineno"> 680</span>  <span class="keyword">const</span> std::string& dst_type, IdType chunk_size,</div>
+<div class="line"><a name="l00681"></a><span class="lineno"> 681</span>  IdType src_chunk_size, IdType dst_chunk_size, <span class="keywordtype">bool</span> directed,</div>
+<div class="line"><a name="l00682"></a><span class="lineno"> 682</span>  <span class="keyword">const</span> AdjacentListVector& adjacent_lists,</div>
+<div class="line"><a name="l00683"></a><span class="lineno"> 683</span>  <span class="keyword">const</span> PropertyGroupVector& property_groups,</div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  <span class="keyword">const</span> std::string& prefix,</div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  std::shared_ptr<const InfoVersion> version)</div>
+<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  : impl_(new <a class="code" href="classgraphar_1_1_edge_info_1_1_impl.html">Impl</a>(src_type, edge_type, dst_type, chunk_size, src_chunk_size,</div>
+<div class="line"><a name="l00687"></a><span class="lineno"> 687</span>  dst_chunk_size, directed, prefix, adjacent_lists,</div>
+<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  property_groups, version)) {}</div>
+<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  </div>
+<div class="line"><a name="l00690"></a><span class="lineno"> 690</span> EdgeInfo::~EdgeInfo() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l00691"></a><span class="lineno"> 691</span>  </div>
+<div class="line"><a name="l00692"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a994023f50f2f952cc1361b0f9928dec4"> 692</a></span> <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_edge_info.html#a994023f50f2f952cc1361b0f9928dec4">EdgeInfo::GetSrcType</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->src_type_; }</div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  </div>
+<div class="line"><a name="l00694"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a03c9b4f4b0edcf47f2e5746e8f9f6db0"> 694</a></span> <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_edge_info.html#a03c9b4f4b0edcf47f2e5746e8f9f6db0">EdgeInfo::GetEdgeType</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->edge_type_; }</div>
+<div class="line"><a name="l00695"></a><span class="lineno"> 695</span>  </div>
+<div class="line"><a name="l00696"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#ac03180737adf29c79196bbe729b3c929"> 696</a></span> <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_edge_info.html#ac03180737adf29c79196bbe729b3c929">EdgeInfo::GetDstType</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->dst_type_; }</div>
+<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  </div>
+<div class="line"><a name="l00698"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a62c2300185c0655df9b44db39b0a399b"> 698</a></span> IdType <a class="code" href="classgraphar_1_1_edge_info.html#a62c2300185c0655df9b44db39b0a399b">EdgeInfo::GetChunkSize</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->chunk_size_; }</div>
+<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  </div>
+<div class="line"><a name="l00700"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#ac07ad975e8ecbdb779038388e3def59e"> 700</a></span> IdType <a class="code" href="classgraphar_1_1_edge_info.html#ac07ad975e8ecbdb779038388e3def59e">EdgeInfo::GetSrcChunkSize</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->src_chunk_size_; }</div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  </div>
+<div class="line"><a name="l00702"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#abe0fc6672a3fbb5fbd0b5e8775cb8dac"> 702</a></span> IdType <a class="code" href="classgraphar_1_1_edge_info.html#abe0fc6672a3fbb5fbd0b5e8775cb8dac">EdgeInfo::GetDstChunkSize</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->dst_chunk_size_; }</div>
+<div class="line"><a name="l00703"></a><span class="lineno"> 703</span>  </div>
+<div class="line"><a name="l00704"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a4ec8810a54411f9a8aba35b2faf29acb"> 704</a></span> <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_edge_info.html#a4ec8810a54411f9a8aba35b2faf29acb">EdgeInfo::GetPrefix</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->prefix_; }</div>
+<div class="line"><a name="l00705"></a><span class="lineno"> 705</span>  </div>
+<div class="line"><a name="l00706"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#aad31af465d41c026a35c20828915922e"> 706</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#aad31af465d41c026a35c20828915922e">EdgeInfo::IsDirected</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->directed_; }</div>
<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  </div>
-<div class="line"><a name="l00708"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#aee914f2c4adf773c048daed0e93dbe32"> 708</a></span> <span class="keywordtype">int</span> <a class="code" href="classgraphar_1_1_edge_info.html#aee914f2c4adf773c048daed0e93dbe32">EdgeInfo::PropertyGroupNum</a>()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(impl_->property_groups_.size());</div>
+<div class="line"><a name="l00708"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a9440bef05f4fa689662f26a9ef0117c1"> 708</a></span> <span class="keyword">const</span> std::shared_ptr<const InfoVersion>& <a class="code" href="classgraphar_1_1_edge_info.html#a9440bef05f4fa689662f26a9ef0117c1">EdgeInfo::version</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  <span class="keywordflow">return</span> impl_->version_;</div>
<div class="line"><a name="l00710"></a><span class="lineno"> 710</span> }</div>
<div class="line"><a name="l00711"></a><span class="lineno"> 711</span>  </div>
-<div class="line"><a name="l00712"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#ad56107001dcbadac71ae8063cd25b58f"> 712</a></span> <span class="keyword">const</span> PropertyGroupVector& <a class="code" href="classgraphar_1_1_edge_info.html#ad56107001dcbadac71ae8063cd25b58f">EdgeInfo::GetPropertyGroups</a>()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  <span class="keywordflow">return</span> impl_->property_groups_;</div>
-<div class="line"><a name="l00714"></a><span class="lineno"> 714</span> }</div>
-<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  </div>
-<div class="line"><a name="l00716"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#aec1bdf018d5b209f722dbf293ef14dd6"> 716</a></span> std::shared_ptr<PropertyGroup> <a class="code" href="classgraphar_1_1_edge_info.html#aec1bdf018d5b209f722dbf293ef14dd6">EdgeInfo::GetPropertyGroup</a>(</div>
-<div class="line"><a name="l00717"></a><span class="lineno"> 717</span>  <span class="keyword">const</span> std::string& property_name)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  <span class="keywordtype">int</span> i = LookupKeyIndex(impl_->property_name_to_index_, property_name);</div>
-<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  <span class="keywordflow">return</span> i == -1 ? nullptr : impl_->property_groups_[i];</div>
+<div class="line"><a name="l00712"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#aaa6633dc8136cec806cbcf42c2cf136d"> 712</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#aaa6633dc8136cec806cbcf42c2cf136d">EdgeInfo::HasAdjacentListType</a>(AdjListType adj_list_type)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00713"></a><span class="lineno"> 713</span>  <span class="keywordflow">return</span> impl_->adjacent_list_type_to_index_.find(adj_list_type) !=</div>
+<div class="line"><a name="l00714"></a><span class="lineno"> 714</span>  impl_->adjacent_list_type_to_index_.end();</div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span> }</div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  </div>
+<div class="line"><a name="l00717"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a69182fa8d45bb0e7d4ac230adb1239b2"> 717</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#a69182fa8d45bb0e7d4ac230adb1239b2">EdgeInfo::HasProperty</a>(<span class="keyword">const</span> std::string& property_name)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  <span class="keywordflow">return</span> impl_->property_name_to_index_.find(property_name) !=</div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  impl_->property_name_to_index_.end();</div>
<div class="line"><a name="l00720"></a><span class="lineno"> 720</span> }</div>
<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  </div>
-<div class="line"><a name="l00722"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a8551959066b19885b9ce15262b5cb3db"> 722</a></span> std::shared_ptr<PropertyGroup> <a class="code" href="classgraphar_1_1_edge_info.html#a8551959066b19885b9ce15262b5cb3db">EdgeInfo::GetPropertyGroupByIndex</a>(</div>
-<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  <span class="keywordtype">int</span> index)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  <span class="keywordflow">if</span> (index < 0 || index >= <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(impl_->property_groups_.size())) {</div>
-<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l00722"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a857bb686e5d7f579ac0e2a889a53f829"> 722</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#a857bb686e5d7f579ac0e2a889a53f829">EdgeInfo::HasPropertyGroup</a>(</div>
+<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  <span class="keyword">const</span> std::shared_ptr<PropertyGroup>& property_group)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  <span class="keywordflow">if</span> (property_group == <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  }</div>
-<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  <span class="keywordflow">return</span> impl_->property_groups_[index];</div>
-<div class="line"><a name="l00728"></a><span class="lineno"> 728</span> }</div>
-<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  </div>
-<div class="line"><a name="l00730"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#aec1a622c83b14d62b26e7143850a3cf1"> 730</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#aec1a622c83b14d62b26e7143850a3cf1">EdgeInfo::GetVerticesNumFilePath</a>(</div>
-<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  AdjListType adj_list_type)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  CHECK_HAS_ADJ_LIST_TYPE(adj_list_type);</div>
-<div class="line"><a name="l00733"></a><span class="lineno"> 733</span>  <span class="keywordtype">int</span> i = impl_->adjacent_list_type_to_index_.at(adj_list_type);</div>
-<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  <span class="keywordflow">return</span> BuildPath({impl_->prefix_, impl_->adjacent_lists_[i]->GetPrefix()}) +</div>
-<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  <span class="stringliteral">"vertex_count"</span>;</div>
-<div class="line"><a name="l00736"></a><span class="lineno"> 736</span> }</div>
-<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  </div>
-<div class="line"><a name="l00738"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a4f2c7fedc68dce8f1c7fb90eede9906f"> 738</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#a4f2c7fedc68dce8f1c7fb90eede9906f">EdgeInfo::GetEdgesNumFilePath</a>(</div>
-<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  IdType vertex_chunk_index, AdjListType adj_list_type)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  CHECK_HAS_ADJ_LIST_TYPE(adj_list_type);</div>
-<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  <span class="keywordtype">int</span> i = impl_->adjacent_list_type_to_index_.at(adj_list_type);</div>
-<div class="line"><a name="l00742"></a><span class="lineno"> 742</span>  <span class="keywordflow">return</span> BuildPath({impl_->prefix_, impl_->adjacent_lists_[i]->GetPrefix()}) +</div>
-<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  <span class="stringliteral">"edge_count"</span> + std::to_string(vertex_chunk_index);</div>
-<div class="line"><a name="l00744"></a><span class="lineno"> 744</span> }</div>
-<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  </div>
-<div class="line"><a name="l00746"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a0eb9f0ff282c73f5c90a8c3940f1929e"> 746</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#a0eb9f0ff282c73f5c90a8c3940f1929e">EdgeInfo::GetAdjListFilePath</a>(</div>
-<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  IdType vertex_chunk_index, IdType edge_chunk_index,</div>
-<div class="line"><a name="l00748"></a><span class="lineno"> 748</span>  AdjListType adj_list_type)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  CHECK_HAS_ADJ_LIST_TYPE(adj_list_type);</div>
-<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  <span class="keywordtype">int</span> i = impl_->adjacent_list_type_to_index_.at(adj_list_type);</div>
-<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  <span class="keywordflow">return</span> BuildPath({impl_->prefix_, impl_->adjacent_lists_[i]->GetPrefix()}) +</div>
-<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  <span class="stringliteral">"adj_list/part"</span> + std::to_string(vertex_chunk_index) + <span class="stringliteral">"/chunk"</span> +</div>
-<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  std::to_string(edge_chunk_index);</div>
-<div class="line"><a name="l00754"></a><span class="lineno"> 754</span> }</div>
-<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  </div>
-<div class="line"><a name="l00756"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#ab39f63f0aa7284c510a7e0d61b0942d3"> 756</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#ab39f63f0aa7284c510a7e0d61b0942d3">EdgeInfo::GetAdjListPathPrefix</a>(</div>
-<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  AdjListType adj_list_type)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00758"></a><span class="lineno"> 758</span>  CHECK_HAS_ADJ_LIST_TYPE(adj_list_type);</div>
-<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  <span class="keywordtype">int</span> i = impl_->adjacent_list_type_to_index_.at(adj_list_type);</div>
-<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  <span class="keywordflow">return</span> BuildPath({impl_->prefix_, impl_->adjacent_lists_[i]->GetPrefix()}) +</div>
-<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  <span class="stringliteral">"adj_list/"</span>;</div>
-<div class="line"><a name="l00762"></a><span class="lineno"> 762</span> }</div>
-<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  </div>
-<div class="line"><a name="l00764"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a615fe3ed78f35af9aef598287cb89a27"> 764</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#a615fe3ed78f35af9aef598287cb89a27">EdgeInfo::GetAdjListOffsetFilePath</a>(</div>
-<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  IdType vertex_chunk_index, AdjListType adj_list_type)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  CHECK_HAS_ADJ_LIST_TYPE(adj_list_type);</div>
-<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  <span class="keywordtype">int</span> i = impl_->adjacent_list_type_to_index_.at(adj_list_type);</div>
-<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  <span class="keywordflow">return</span> BuildPath({impl_->prefix_, impl_->adjacent_lists_[i]->GetPrefix()}) +</div>
-<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  <span class="stringliteral">"offset/chunk"</span> + std::to_string(vertex_chunk_index);</div>
-<div class="line"><a name="l00770"></a><span class="lineno"> 770</span> }</div>
-<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  </div>
-<div class="line"><a name="l00772"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#aab2032669c9e9dcf11275fdd4cb2c1fa"> 772</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#aab2032669c9e9dcf11275fdd4cb2c1fa">EdgeInfo::GetOffsetPathPrefix</a>(</div>
-<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  AdjListType adj_list_type)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  CHECK_HAS_ADJ_LIST_TYPE(adj_list_type);</div>
-<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  <span class="keywordtype">int</span> i = impl_->adjacent_list_type_to_index_.at(adj_list_type);</div>
-<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  <span class="keywordflow">return</span> BuildPath({impl_->prefix_, impl_->adjacent_lists_[i]->GetPrefix()}) +</div>
-<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  <span class="stringliteral">"offset/"</span>;</div>
-<div class="line"><a name="l00778"></a><span class="lineno"> 778</span> }</div>
-<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  </div>
-<div class="line"><a name="l00780"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#abfcba5aed61cdfaf91f98e649b370722"> 780</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#abfcba5aed61cdfaf91f98e649b370722">EdgeInfo::GetPropertyFilePath</a>(</div>
-<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  <span class="keyword">const</span> std::shared_ptr<PropertyGroup>& property_group,</div>
-<div class="line"><a name="l00782"></a><span class="lineno"> 782</span>  AdjListType adj_list_type, IdType vertex_chunk_index,</div>
-<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  IdType edge_chunk_index)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  <span class="keywordflow">if</span> (property_group == <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"property group is nullptr"</span>);</div>
-<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  }</div>
-<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  CHECK_HAS_ADJ_LIST_TYPE(adj_list_type);</div>
-<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  <span class="keywordtype">int</span> i = impl_->adjacent_list_type_to_index_.at(adj_list_type);</div>
-<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  <span class="keywordflow">return</span> BuildPath({impl_->prefix_, impl_->adjacent_lists_[i]->GetPrefix(),</div>
-<div class="line"><a name="l00790"></a><span class="lineno"> 790</span>  property_group->GetPrefix()}) +</div>
-<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  <span class="stringliteral">"part"</span> + std::to_string(vertex_chunk_index) + <span class="stringliteral">"/chunk"</span> +</div>
-<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  std::to_string(edge_chunk_index);</div>
-<div class="line"><a name="l00793"></a><span class="lineno"> 793</span> }</div>
-<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  </div>
-<div class="line"><a name="l00795"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a55004cedc30fcb0fa94adf246dcc2702"> 795</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#a55004cedc30fcb0fa94adf246dcc2702">EdgeInfo::GetPropertyGroupPathPrefix</a>(</div>
-<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  <span class="keyword">const</span> std::shared_ptr<PropertyGroup>& property_group,</div>
-<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  AdjListType adj_list_type)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  <span class="keywordflow">if</span> (property_group == <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"property group is nullptr"</span>);</div>
-<div class="line"><a name="l00800"></a><span class="lineno"> 800</span>  }</div>
-<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  CHECK_HAS_ADJ_LIST_TYPE(adj_list_type);</div>
-<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  <span class="keywordtype">int</span> i = impl_->adjacent_list_type_to_index_.at(adj_list_type);</div>
-<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  <span class="keywordflow">return</span> BuildPath({impl_->prefix_, impl_->adjacent_lists_[i]->GetPrefix(),</div>
-<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  property_group->GetPrefix()});</div>
-<div class="line"><a name="l00805"></a><span class="lineno"> 805</span> }</div>
-<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  </div>
-<div class="line"><a name="l00807"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a37fa8536c627a5e5f529e8ee6d3d7506"> 807</a></span> Result<std::shared_ptr<DataType>> <a class="code" href="classgraphar_1_1_edge_info.html#a37fa8536c627a5e5f529e8ee6d3d7506">EdgeInfo::GetPropertyType</a>(</div>
-<div class="line"><a name="l00808"></a><span class="lineno"> 808</span>  <span class="keyword">const</span> std::string& property_name)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  <span class="keyword">auto</span> it = impl_->property_name_to_type_.find(property_name);</div>
-<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  <span class="keywordflow">if</span> (it == impl_->property_name_to_type_.end()) {</div>
-<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"property name not found: "</span>, property_name);</div>
-<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  }</div>
-<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  <span class="keywordflow">return</span> it->second;</div>
+<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& pg : impl_->property_groups_) {</div>
+<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  <span class="keywordflow">if</span> (*pg == *property_group) {</div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  }</div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</span>  }</div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00733"></a><span class="lineno"> 733</span> }</div>
+<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  </div>
+<div class="line"><a name="l00735"></a><span class="lineno"> 735</span> std::shared_ptr<AdjacentList> EdgeInfo::GetAdjacentList(</div>
+<div class="line"><a name="l00736"></a><span class="lineno"> 736</span>  AdjListType adj_list_type)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  <span class="keyword">auto</span> it = impl_->adjacent_list_type_to_index_.find(adj_list_type);</div>
+<div class="line"><a name="l00738"></a><span class="lineno"> 738</span>  <span class="keywordflow">if</span> (it == impl_->adjacent_list_type_to_index_.end()) {</div>
+<div class="line"><a name="l00739"></a><span class="lineno"> 739</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l00740"></a><span class="lineno"> 740</span>  }</div>
+<div class="line"><a name="l00741"></a><span class="lineno"> 741</span>  <span class="keywordflow">return</span> impl_->adjacent_lists_[it->second];</div>
+<div class="line"><a name="l00742"></a><span class="lineno"> 742</span> }</div>
+<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  </div>
+<div class="line"><a name="l00744"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#aee914f2c4adf773c048daed0e93dbe32"> 744</a></span> <span class="keywordtype">int</span> <a class="code" href="classgraphar_1_1_edge_info.html#aee914f2c4adf773c048daed0e93dbe32">EdgeInfo::PropertyGroupNum</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(impl_->property_groups_.size());</div>
+<div class="line"><a name="l00746"></a><span class="lineno"> 746</span> }</div>
+<div class="line"><a name="l00747"></a><span class="lineno"> 747</span>  </div>
+<div class="line"><a name="l00748"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#ad56107001dcbadac71ae8063cd25b58f"> 748</a></span> <span class="keyword">const</span> PropertyGroupVector& <a class="code" href="classgraphar_1_1_edge_info.html#ad56107001dcbadac71ae8063cd25b58f">EdgeInfo::GetPropertyGroups</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  <span class="keywordflow">return</span> impl_->property_groups_;</div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span> }</div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  </div>
+<div class="line"><a name="l00752"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#aec1bdf018d5b209f722dbf293ef14dd6"> 752</a></span> std::shared_ptr<PropertyGroup> <a class="code" href="classgraphar_1_1_edge_info.html#aec1bdf018d5b209f722dbf293ef14dd6">EdgeInfo::GetPropertyGroup</a>(</div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  <span class="keyword">const</span> std::string& property_name)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  <span class="keywordtype">int</span> i = LookupKeyIndex(impl_->property_name_to_index_, property_name);</div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  <span class="keywordflow">return</span> i == -1 ? nullptr : impl_->property_groups_[i];</div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span> }</div>
+<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  </div>
+<div class="line"><a name="l00758"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a8551959066b19885b9ce15262b5cb3db"> 758</a></span> std::shared_ptr<PropertyGroup> <a class="code" href="classgraphar_1_1_edge_info.html#a8551959066b19885b9ce15262b5cb3db">EdgeInfo::GetPropertyGroupByIndex</a>(</div>
+<div class="line"><a name="l00759"></a><span class="lineno"> 759</span>  <span class="keywordtype">int</span> index)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00760"></a><span class="lineno"> 760</span>  <span class="keywordflow">if</span> (index < 0 || index >= <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(impl_->property_groups_.size())) {</div>
+<div class="line"><a name="l00761"></a><span class="lineno"> 761</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l00762"></a><span class="lineno"> 762</span>  }</div>
+<div class="line"><a name="l00763"></a><span class="lineno"> 763</span>  <span class="keywordflow">return</span> impl_->property_groups_[index];</div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span> }</div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  </div>
+<div class="line"><a name="l00766"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#aec1a622c83b14d62b26e7143850a3cf1"> 766</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#aec1a622c83b14d62b26e7143850a3cf1">EdgeInfo::GetVerticesNumFilePath</a>(</div>
+<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  AdjListType adj_list_type)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00768"></a><span class="lineno"> 768</span>  CHECK_HAS_ADJ_LIST_TYPE(adj_list_type);</div>
+<div class="line"><a name="l00769"></a><span class="lineno"> 769</span>  <span class="keywordtype">int</span> i = impl_->adjacent_list_type_to_index_.at(adj_list_type);</div>
+<div class="line"><a name="l00770"></a><span class="lineno"> 770</span>  <span class="keywordflow">return</span> BuildPath({impl_->prefix_, impl_->adjacent_lists_[i]->GetPrefix()}) +</div>
+<div class="line"><a name="l00771"></a><span class="lineno"> 771</span>  <span class="stringliteral">"vertex_count"</span>;</div>
+<div class="line"><a name="l00772"></a><span class="lineno"> 772</span> }</div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  </div>
+<div class="line"><a name="l00774"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a4f2c7fedc68dce8f1c7fb90eede9906f"> 774</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#a4f2c7fedc68dce8f1c7fb90eede9906f">EdgeInfo::GetEdgesNumFilePath</a>(</div>
+<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  IdType vertex_chunk_index, AdjListType adj_list_type)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00776"></a><span class="lineno"> 776</span>  CHECK_HAS_ADJ_LIST_TYPE(adj_list_type);</div>
+<div class="line"><a name="l00777"></a><span class="lineno"> 777</span>  <span class="keywordtype">int</span> i = impl_->adjacent_list_type_to_index_.at(adj_list_type);</div>
+<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  <span class="keywordflow">return</span> BuildPath({impl_->prefix_, impl_->adjacent_lists_[i]->GetPrefix()}) +</div>
+<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  <span class="stringliteral">"edge_count"</span> + std::to_string(vertex_chunk_index);</div>
+<div class="line"><a name="l00780"></a><span class="lineno"> 780</span> }</div>
+<div class="line"><a name="l00781"></a><span class="lineno"> 781</span>  </div>
+<div class="line"><a name="l00782"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a0eb9f0ff282c73f5c90a8c3940f1929e"> 782</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#a0eb9f0ff282c73f5c90a8c3940f1929e">EdgeInfo::GetAdjListFilePath</a>(</div>
+<div class="line"><a name="l00783"></a><span class="lineno"> 783</span>  IdType vertex_chunk_index, IdType edge_chunk_index,</div>
+<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  AdjListType adj_list_type)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  CHECK_HAS_ADJ_LIST_TYPE(adj_list_type);</div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  <span class="keywordtype">int</span> i = impl_->adjacent_list_type_to_index_.at(adj_list_type);</div>
+<div class="line"><a name="l00787"></a><span class="lineno"> 787</span>  <span class="keywordflow">return</span> BuildPath({impl_->prefix_, impl_->adjacent_lists_[i]->GetPrefix()}) +</div>
+<div class="line"><a name="l00788"></a><span class="lineno"> 788</span>  <span class="stringliteral">"adj_list/part"</span> + std::to_string(vertex_chunk_index) + <span class="stringliteral">"/chunk"</span> +</div>
+<div class="line"><a name="l00789"></a><span class="lineno"> 789</span>  std::to_string(edge_chunk_index);</div>
+<div class="line"><a name="l00790"></a><span class="lineno"> 790</span> }</div>
+<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  </div>
+<div class="line"><a name="l00792"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#ab39f63f0aa7284c510a7e0d61b0942d3"> 792</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#ab39f63f0aa7284c510a7e0d61b0942d3">EdgeInfo::GetAdjListPathPrefix</a>(</div>
+<div class="line"><a name="l00793"></a><span class="lineno"> 793</span>  AdjListType adj_list_type)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  CHECK_HAS_ADJ_LIST_TYPE(adj_list_type);</div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  <span class="keywordtype">int</span> i = impl_->adjacent_list_type_to_index_.at(adj_list_type);</div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  <span class="keywordflow">return</span> BuildPath({impl_->prefix_, impl_->adjacent_lists_[i]->GetPrefix()}) +</div>
+<div class="line"><a name="l00797"></a><span class="lineno"> 797</span>  <span class="stringliteral">"adj_list/"</span>;</div>
+<div class="line"><a name="l00798"></a><span class="lineno"> 798</span> }</div>
+<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  </div>
+<div class="line"><a name="l00800"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a615fe3ed78f35af9aef598287cb89a27"> 800</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#a615fe3ed78f35af9aef598287cb89a27">EdgeInfo::GetAdjListOffsetFilePath</a>(</div>
+<div class="line"><a name="l00801"></a><span class="lineno"> 801</span>  IdType vertex_chunk_index, AdjListType adj_list_type)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00802"></a><span class="lineno"> 802</span>  CHECK_HAS_ADJ_LIST_TYPE(adj_list_type);</div>
+<div class="line"><a name="l00803"></a><span class="lineno"> 803</span>  <span class="keywordtype">int</span> i = impl_->adjacent_list_type_to_index_.at(adj_list_type);</div>
+<div class="line"><a name="l00804"></a><span class="lineno"> 804</span>  <span class="keywordflow">return</span> BuildPath({impl_->prefix_, impl_->adjacent_lists_[i]->GetPrefix()}) +</div>
+<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  <span class="stringliteral">"offset/chunk"</span> + std::to_string(vertex_chunk_index);</div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</span> }</div>
+<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  </div>
+<div class="line"><a name="l00808"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#aab2032669c9e9dcf11275fdd4cb2c1fa"> 808</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#aab2032669c9e9dcf11275fdd4cb2c1fa">EdgeInfo::GetOffsetPathPrefix</a>(</div>
+<div class="line"><a name="l00809"></a><span class="lineno"> 809</span>  AdjListType adj_list_type)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00810"></a><span class="lineno"> 810</span>  CHECK_HAS_ADJ_LIST_TYPE(adj_list_type);</div>
+<div class="line"><a name="l00811"></a><span class="lineno"> 811</span>  <span class="keywordtype">int</span> i = impl_->adjacent_list_type_to_index_.at(adj_list_type);</div>
+<div class="line"><a name="l00812"></a><span class="lineno"> 812</span>  <span class="keywordflow">return</span> BuildPath({impl_->prefix_, impl_->adjacent_lists_[i]->GetPrefix()}) +</div>
+<div class="line"><a name="l00813"></a><span class="lineno"> 813</span>  <span class="stringliteral">"offset/"</span>;</div>
<div class="line"><a name="l00814"></a><span class="lineno"> 814</span> }</div>
<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  </div>
-<div class="line"><a name="l00816"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a5bd430ba21f5dfb230b978e03c4020ef"> 816</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#a5bd430ba21f5dfb230b978e03c4020ef">EdgeInfo::IsPrimaryKey</a>(<span class="keyword">const</span> std::string& property_name)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  <span class="keyword">auto</span> it = impl_->property_name_to_primary_.find(property_name);</div>
-<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  <span class="keywordflow">if</span> (it == impl_->property_name_to_primary_.end()) {</div>
-<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  }</div>
-<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  <span class="keywordflow">return</span> it->second;</div>
-<div class="line"><a name="l00822"></a><span class="lineno"> 822</span> }</div>
-<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  </div>
-<div class="line"><a name="l00824"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a80b00d930f22870d00331a639c9cc26e"> 824</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#a80b00d930f22870d00331a639c9cc26e">EdgeInfo::IsNullableKey</a>(<span class="keyword">const</span> std::string& property_name)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  <span class="keyword">auto</span> it = impl_->property_name_to_nullable_.find(property_name);</div>
-<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  <span class="keywordflow">if</span> (it == impl_->property_name_to_nullable_.end()) {</div>
-<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  }</div>
-<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  <span class="keywordflow">return</span> it->second;</div>
-<div class="line"><a name="l00830"></a><span class="lineno"> 830</span> }</div>
-<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  </div>
-<div class="line"><a name="l00832"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a6e5b4fdc98d8399564396fb63955c62a"> 832</a></span> Result<std::shared_ptr<EdgeInfo>> <a class="code" href="classgraphar_1_1_edge_info.html#a6e5b4fdc98d8399564396fb63955c62a">EdgeInfo::AddAdjacentList</a>(</div>
-<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  std::shared_ptr<AdjacentList> adj_list)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  <span class="keywordflow">if</span> (adj_list == <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"adj list is nullptr"</span>);</div>
+<div class="line"><a name="l00816"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#abfcba5aed61cdfaf91f98e649b370722"> 816</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#abfcba5aed61cdfaf91f98e649b370722">EdgeInfo::GetPropertyFilePath</a>(</div>
+<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  <span class="keyword">const</span> std::shared_ptr<PropertyGroup>& property_group,</div>
+<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  AdjListType adj_list_type, IdType vertex_chunk_index,</div>
+<div class="line"><a name="l00819"></a><span class="lineno"> 819</span>  IdType edge_chunk_index)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00820"></a><span class="lineno"> 820</span>  <span class="keywordflow">if</span> (property_group == <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l00821"></a><span class="lineno"> 821</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"property group is nullptr"</span>);</div>
+<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  }</div>
+<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  CHECK_HAS_ADJ_LIST_TYPE(adj_list_type);</div>
+<div class="line"><a name="l00824"></a><span class="lineno"> 824</span>  <span class="keywordtype">int</span> i = impl_->adjacent_list_type_to_index_.at(adj_list_type);</div>
+<div class="line"><a name="l00825"></a><span class="lineno"> 825</span>  <span class="keywordflow">return</span> BuildPath({impl_->prefix_, impl_->adjacent_lists_[i]->GetPrefix(),</div>
+<div class="line"><a name="l00826"></a><span class="lineno"> 826</span>  property_group->GetPrefix()}) +</div>
+<div class="line"><a name="l00827"></a><span class="lineno"> 827</span>  <span class="stringliteral">"part"</span> + std::to_string(vertex_chunk_index) + <span class="stringliteral">"/chunk"</span> +</div>
+<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  std::to_string(edge_chunk_index);</div>
+<div class="line"><a name="l00829"></a><span class="lineno"> 829</span> }</div>
+<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  </div>
+<div class="line"><a name="l00831"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a55004cedc30fcb0fa94adf246dcc2702"> 831</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#a55004cedc30fcb0fa94adf246dcc2702">EdgeInfo::GetPropertyGroupPathPrefix</a>(</div>
+<div class="line"><a name="l00832"></a><span class="lineno"> 832</span>  <span class="keyword">const</span> std::shared_ptr<PropertyGroup>& property_group,</div>
+<div class="line"><a name="l00833"></a><span class="lineno"> 833</span>  AdjListType adj_list_type)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  <span class="keywordflow">if</span> (property_group == <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"property group is nullptr"</span>);</div>
<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  }</div>
-<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  <span class="keywordflow">if</span> (<a class="code" href="classgraphar_1_1_edge_info.html#aaa6633dc8136cec806cbcf42c2cf136d">HasAdjacentListType</a>(adj_list->GetType())) {</div>
-<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"adj list type already exists: "</span>,</div>
-<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  AdjListTypeToString(adj_list->GetType()));</div>
-<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  }</div>
-<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  <span class="keywordflow">return</span> std::make_shared<EdgeInfo>(</div>
-<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  impl_->src_type_, impl_->edge_type_, impl_->dst_type_, impl_->chunk_size_,</div>
-<div class="line"><a name="l00843"></a><span class="lineno"> 843</span>  impl_->src_chunk_size_, impl_->dst_chunk_size_, impl_->directed_,</div>
-<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  AddVectorElement(impl_->adjacent_lists_, adj_list),</div>
-<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  impl_->property_groups_, impl_->prefix_, impl_->version_);</div>
-<div class="line"><a name="l00846"></a><span class="lineno"> 846</span> }</div>
-<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  </div>
-<div class="line"><a name="l00848"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a9620f838addfdcb892b30e80e2cc4239"> 848</a></span> Result<std::shared_ptr<EdgeInfo>> <a class="code" href="classgraphar_1_1_edge_info.html#a9620f838addfdcb892b30e80e2cc4239">EdgeInfo::AddPropertyGroup</a>(</div>
-<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  std::shared_ptr<PropertyGroup> property_group)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l00850"></a><span class="lineno"> 850</span>  <span class="keywordflow">if</span> (property_group == <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"property group is nullptr"</span>);</div>
-<div class="line"><a name="l00852"></a><span class="lineno"> 852</span>  }</div>
-<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& property : property_group->GetProperties()) {</div>
-<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  <span class="keywordflow">if</span> (<a class="code" href="classgraphar_1_1_edge_info.html#a69182fa8d45bb0e7d4ac230adb1239b2">HasProperty</a>(property.name)) {</div>
-<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"property in property group already exists: "</span>,</div>
-<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  property.name);</div>
-<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  }</div>
-<div class="line"><a name="l00858"></a><span class="lineno"> 858</span>  }</div>
-<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  <span class="keywordflow">return</span> std::make_shared<EdgeInfo>(</div>
-<div class="line"><a name="l00860"></a><span class="lineno"> 860</span>  impl_->src_type_, impl_->edge_type_, impl_->dst_type_, impl_->chunk_size_,</div>
-<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  impl_->src_chunk_size_, impl_->dst_chunk_size_, impl_->directed_,</div>
-<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  impl_->adjacent_lists_,</div>
-<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  AddVectorElement(impl_->property_groups_, property_group), impl_->prefix_,</div>
-<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  impl_->version_);</div>
-<div class="line"><a name="l00865"></a><span class="lineno"> 865</span> }</div>
-<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  </div>
-<div class="line"><a name="l00867"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a3dca57726506375cab4fc43fdef2914f"> 867</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#a3dca57726506375cab4fc43fdef2914f">EdgeInfo::IsValidated</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->is_validated(); }</div>
-<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  </div>
-<div class="line"><a name="l00869"></a><span class="lineno"> 869</span> std::shared_ptr<EdgeInfo> CreateEdgeInfo(</div>
-<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  <span class="keyword">const</span> std::string& src_type, <span class="keyword">const</span> std::string& edge_type,</div>
-<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  <span class="keyword">const</span> std::string& dst_type, IdType chunk_size, IdType src_chunk_size,</div>
-<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>  IdType dst_chunk_size, <span class="keywordtype">bool</span> directed,</div>
-<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  <span class="keyword">const</span> AdjacentListVector& adjacent_lists,</div>
-<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>  <span class="keyword">const</span> PropertyGroupVector& property_groups, <span class="keyword">const</span> std::string& prefix,</div>
-<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  std::shared_ptr<const InfoVersion> version) {</div>
-<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  <span class="keywordflow">if</span> (src_type.empty() || edge_type.empty() || dst_type.empty() ||</div>
-<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  chunk_size <= 0 || src_chunk_size <= 0 || dst_chunk_size <= 0 ||</div>
-<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  adjacent_lists.empty()) {</div>
-<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
-<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  }</div>
-<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  <span class="keywordflow">return</span> std::make_shared<EdgeInfo>(</div>
-<div class="line"><a name="l00882"></a><span class="lineno"> 882</span>  src_type, edge_type, dst_type, chunk_size, src_chunk_size, dst_chunk_size,</div>
-<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  directed, adjacent_lists, property_groups, prefix, version);</div>
-<div class="line"><a name="l00884"></a><span class="lineno"> 884</span> }</div>
-<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  </div>
-<div class="line"><a name="l00886"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a0ac67e1cf3b3fa79b6fcbc054869d0e5"> 886</a></span> Result<std::shared_ptr<EdgeInfo>> <a class="code" href="classgraphar_1_1_edge_info.html#a0ac67e1cf3b3fa79b6fcbc054869d0e5">EdgeInfo::Load</a>(std::shared_ptr<Yaml> yaml) {</div>
-<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  <span class="keywordflow">if</span> (yaml == <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"yaml shared pointer is nullptr."</span>);</div>
-<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>  }</div>
-<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  std::string src_type = yaml->operator[](<span class="stringliteral">"src_type"</span>).As<std::string>();</div>
-<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  std::string edge_type = yaml->operator[](<span class="stringliteral">"edge_type"</span>).As<std::string>();</div>
-<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  std::string dst_type = yaml->operator[](<span class="stringliteral">"dst_type"</span>).As<std::string>();</div>
-<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  IdType chunk_size =</div>
-<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  <span class="keyword">static_cast<</span>IdType<span class="keyword">></span>(yaml->operator[](<span class="stringliteral">"chunk_size"</span>).As<int64_t>());</div>
-<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  IdType src_chunk_size =</div>
-<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  <span class="keyword">static_cast<</span>IdType<span class="keyword">></span>(yaml->operator[](<span class="stringliteral">"src_chunk_size"</span>).As<int64_t>());</div>
-<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>  IdType dst_chunk_size =</div>
-<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>  <span class="keyword">static_cast<</span>IdType<span class="keyword">></span>(yaml->operator[](<span class="stringliteral">"dst_chunk_size"</span>).As<int64_t>());</div>
-<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>  <span class="keywordtype">bool</span> directed = yaml->operator[](<span class="stringliteral">"directed"</span>).As<bool>();</div>
-<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>  std::string prefix;</div>
-<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>  <span class="keywordflow">if</span> (!yaml->operator[](<span class="stringliteral">"prefix"</span>).IsNone()) {</div>
-<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>  prefix = yaml->operator[](<span class="stringliteral">"prefix"</span>).As<std::string>();</div>
-<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>  }</div>
-<div class="line"><a name="l00904"></a><span class="lineno"> 904</span>  std::shared_ptr<const InfoVersion> <a class="code" href="classgraphar_1_1_edge_info.html#a9440bef05f4fa689662f26a9ef0117c1">version</a> = <span class="keyword">nullptr</span>;</div>
-<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>  <span class="keywordflow">if</span> (!yaml->operator[](<span class="stringliteral">"version"</span>).IsNone()) {</div>
-<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>  GAR_ASSIGN_OR_RAISE(</div>
-<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  <a class="code" href="classgraphar_1_1_edge_info.html#a9440bef05f4fa689662f26a9ef0117c1">version</a>,</div>
-<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  <a class="code" href="classgraphar_1_1_info_version.html#a6c149bd120118e7c6803dcac71a7a667">InfoVersion::Parse</a>(yaml->operator[](<span class="stringliteral">"version"</span>).As<std::string>()));</div>
-<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  }</div>
-<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  </div>
-<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>  AdjacentListVector adjacent_lists;</div>
-<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  PropertyGroupVector property_groups;</div>
-<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  <span class="keyword">auto</span> adj_lists_node = yaml->operator[](<span class="stringliteral">"adj_lists"</span>);</div>
-<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>  <span class="keywordflow">if</span> (adj_lists_node.IsSequence()) {</div>
-<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = adj_lists_node.Begin(); it != adj_lists_node.End(); it++) {</div>
-<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>  <span class="keyword">auto</span>& node = (*it).second;</div>
-<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  <span class="keyword">auto</span> ordered = node[<span class="stringliteral">"ordered"</span>].As<<span class="keywordtype">bool</span>>();</div>
-<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  <span class="keyword">auto</span> aligned = node[<span class="stringliteral">"aligned_by"</span>].As<std::string>();</div>
-<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>  <span class="keyword">auto</span> adj_list_type = OrderedAlignedToAdjListType(ordered, aligned);</div>
-<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  <span class="keyword">auto</span> file_type = StringToFileType(node[<span class="stringliteral">"file_type"</span>].As<std::string>());</div>
-<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  std::string adj_list_prefix;</div>
-<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>  <span class="keywordflow">if</span> (!node[<span class="stringliteral">"prefix"</span>].IsNone()) {</div>
-<div class="line"><a name="l00923"></a><span class="lineno"> 923</span>  adj_list_prefix = node[<span class="stringliteral">"prefix"</span>].As<std::string>();</div>
-<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>  }</div>
-<div class="line"><a name="l00925"></a><span class="lineno"> 925</span>  adjacent_lists.push_back(std::make_shared<AdjacentList>(</div>
-<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  adj_list_type, file_type, adj_list_prefix));</div>
-<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  }</div>
-<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>  }</div>
-<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  <span class="keyword">auto</span> property_groups_node = yaml->operator[](<span class="stringliteral">"property_groups"</span>);</div>
-<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>  <span class="keywordflow">if</span> (!property_groups_node.IsNone()) { <span class="comment">// property_groups exist</span></div>
-<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> pg_it = property_groups_node.Begin();</div>
-<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>  pg_it != property_groups_node.End(); pg_it++) {</div>
-<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  <span class="keyword">auto</span>& pg_node = (*pg_it).second;</div>
-<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>  std::string pg_prefix;</div>
-<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>  <span class="keywordflow">if</span> (!pg_node[<span class="stringliteral">"prefix"</span>].IsNone()) {</div>
-<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>  pg_prefix = pg_node[<span class="stringliteral">"prefix"</span>].As<std::string>();</div>
-<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  }</div>
-<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  <span class="keyword">auto</span> file_type = StringToFileType(pg_node[<span class="stringliteral">"file_type"</span>].As<std::string>());</div>
-<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  <span class="keyword">auto</span> properties = pg_node[<span class="stringliteral">"properties"</span>];</div>
-<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>  std::vector<Property> property_vec;</div>
-<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> p_it = properties.Begin(); p_it != properties.End(); p_it++) {</div>
-<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  <span class="keyword">auto</span>& p_node = (*p_it).second;</div>
-<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  <span class="keyword">auto</span> property_name = p_node[<span class="stringliteral">"name"</span>].As<std::string>();</div>
-<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>  <span class="keyword">auto</span> property_type =</div>
-<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  DataType::TypeNameToDataType(p_node[<span class="stringliteral">"data_type"</span>].As<std::string>());</div>
-<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  <span class="keywordflow">if</span> (!p_node[<span class="stringliteral">"cardinality"</span>].IsNone() &&</div>
-<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>  StringToCardinality(p_node[<span class="stringliteral">"cardinality"</span>].As<std::string>()) !=</div>
-<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>  Cardinality::SINGLE) {</div>
-<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a358b23c7f34efbf14c84cbc2ddbdd6a4">Status::YamlError</a>(</div>
-<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  <span class="stringliteral">"Unsupported set cardinality for edge property."</span>);</div>
-<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>  }</div>
-<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  <span class="keywordtype">bool</span> is_primary = p_node[<span class="stringliteral">"is_primary"</span>].As<<span class="keywordtype">bool</span>>();</div>
-<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>  <span class="keywordtype">bool</span> is_nullable =</div>
-<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  p_node[<span class="stringliteral">"is_nullable"</span>].IsNone() || p_node[<span class="stringliteral">"is_nullable"</span>].As<<span class="keywordtype">bool</span>>();</div>
-<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  property_vec.emplace_back(property_name, property_type, is_primary,</div>
-<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  is_nullable);</div>
-<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  }</div>
-<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  property_groups.push_back(</div>
-<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  std::make_shared<PropertyGroup>(property_vec, file_type, pg_prefix));</div>
-<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  }</div>
-<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  }</div>
-<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>  <span class="keywordflow">return</span> std::make_shared<EdgeInfo>(</div>
-<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>  src_type, edge_type, dst_type, chunk_size, src_chunk_size, dst_chunk_size,</div>
-<div class="line"><a name="l00964"></a><span class="lineno"> 964</span>  directed, adjacent_lists, property_groups, prefix, <a class="code" href="classgraphar_1_1_edge_info.html#a9440bef05f4fa689662f26a9ef0117c1">version</a>);</div>
-<div class="line"><a name="l00965"></a><span class="lineno"> 965</span> }</div>
-<div class="line"><a name="l00966"></a><span class="lineno"> 966</span>  </div>
-<div class="line"><a name="l00967"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a5840f6d36ba8e8dab30c1f89534a7edf"> 967</a></span> Result<std::shared_ptr<EdgeInfo>> <a class="code" href="classgraphar_1_1_edge_info.html#a0ac67e1cf3b3fa79b6fcbc054869d0e5">EdgeInfo::Load</a>(<span class="keyword">const</span> std::string& input) {</div>
-<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> yaml, <a class="code" href="classgraphar_1_1_yaml.html#a2fff6ba5eaf3e59b489d015f10013179">Yaml::Load</a>(input));</div>
-<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_edge_info.html#a0ac67e1cf3b3fa79b6fcbc054869d0e5">EdgeInfo::Load</a>(yaml);</div>
-<div class="line"><a name="l00970"></a><span class="lineno"> 970</span> }</div>
-<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>  </div>
-<div class="line"><a name="l00972"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a80004230ddfbc892995732ea59993a27"> 972</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#a80004230ddfbc892995732ea59993a27">EdgeInfo::Dump</a>() const noexcept {</div>
-<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>  <span class="keywordflow">if</span> (!<a class="code" href="classgraphar_1_1_edge_info.html#a3dca57726506375cab4fc43fdef2914f">IsValidated</a>()) {</div>
-<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"The edge info is not validated."</span>);</div>
-<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  }</div>
-<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  std::string dump_string;</div>
-<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>  ::Yaml::Node node;</div>
-<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>  <span class="keywordflow">try</span> {</div>
-<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>  node[<span class="stringliteral">"src_type"</span>] = impl_->src_type_;</div>
-<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  node[<span class="stringliteral">"edge_type"</span>] = impl_->edge_type_;</div>
-<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  node[<span class="stringliteral">"dst_type"</span>] = impl_->dst_type_;</div>
-<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  node[<span class="stringliteral">"chunk_size"</span>] = std::to_string(impl_->chunk_size_);</div>
-<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  node[<span class="stringliteral">"src_chunk_size"</span>] = std::to_string(impl_->src_chunk_size_);</div>
-<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  node[<span class="stringliteral">"dst_chunk_size"</span>] = std::to_string(impl_->dst_chunk_size_);</div>
-<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>  node[<span class="stringliteral">"prefix"</span>] = impl_->prefix_;</div>
-<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  node[<span class="stringliteral">"directed"</span>] = impl_->directed_ ? <span class="stringliteral">"true"</span> : <span class="stringliteral">"false"</span>;</div>
-<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& adjacent_list : impl_->adjacent_lists_) {</div>
-<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  ::Yaml::Node adj_list_node;</div>
-<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  <span class="keyword">auto</span> adj_list_type = adjacent_list->GetType();</div>
-<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  <span class="keyword">auto</span> pair = AdjListTypeToOrderedAligned(adj_list_type);</div>
-<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  adj_list_node[<span class="stringliteral">"ordered"</span>] = pair.first ? <span class="stringliteral">"true"</span> : <span class="stringliteral">"false"</span>;</div>
-<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  adj_list_node[<span class="stringliteral">"aligned_by"</span>] = pair.second;</div>
-<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  adj_list_node[<span class="stringliteral">"prefix"</span>] = adjacent_list->GetPrefix();</div>
-<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  adj_list_node[<span class="stringliteral">"file_type"</span>] =</div>
-<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  FileTypeToString(adjacent_list->GetFileType());</div>
-<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  node[<span class="stringliteral">"adj_lists"</span>].PushBack();</div>
-<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  node[<span class="stringliteral">"adj_lists"</span>][node[<span class="stringliteral">"adj_lists"</span>].Size() - 1] = adj_list_node;</div>
-<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  }</div>
-<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& pg : impl_->property_groups_) {</div>
-<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  ::Yaml::Node pg_node;</div>
-<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  <span class="keywordflow">if</span> (!pg->GetPrefix().empty()) {</div>
-<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  pg_node[<span class="stringliteral">"prefix"</span>] = pg->GetPrefix();</div>
-<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  }</div>
-<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  pg_node[<span class="stringliteral">"file_type"</span>] = FileTypeToString(pg->GetFileType());</div>
-<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& p : pg->GetProperties()) {</div>
-<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  ::Yaml::Node p_node;</div>
-<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>  p_node[<span class="stringliteral">"name"</span>] = p.name;</div>
-<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>  p_node[<span class="stringliteral">"data_type"</span>] = p.type->ToTypeName();</div>
-<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>  p_node[<span class="stringliteral">"is_primary"</span>] = p.is_primary ? <span class="stringliteral">"true"</span> : <span class="stringliteral">"false"</span>;</div>
-<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>  p_node[<span class="stringliteral">"is_nullable"</span>] = p.is_nullable ? <span class="stringliteral">"true"</span> : <span class="stringliteral">"false"</span>;</div>
-<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>  pg_node[<span class="stringliteral">"properties"</span>].PushBack();</div>
-<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>  pg_node[<span class="stringliteral">"properties"</span>][pg_node[<span class="stringliteral">"properties"</span>].Size() - 1] = p_node;</div>
-<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>  }</div>
-<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>  node[<span class="stringliteral">"property_groups"</span>].PushBack();</div>
-<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>  node[<span class="stringliteral">"property_groups"</span>][node[<span class="stringliteral">"property_groups"</span>].Size() - 1] = pg_node;</div>
-<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  }</div>
-<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  <span class="keywordflow">if</span> (impl_->version_ != <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>  node[<span class="stringliteral">"version"</span>] = impl_->version_->ToString();</div>
-<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>  }</div>
-<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>  ::Yaml::Serialize(node, dump_string);</div>
-<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>  } <span class="keywordflow">catch</span> (<span class="keyword">const</span> std::exception& e) {</div>
-<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"Failed to dump edge info: "</span>, e.what());</div>
-<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>  }</div>
-<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>  <span class="keywordflow">return</span> dump_string;</div>
-<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span> }</div>
-<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>  </div>
-<div class="line"><a name="l01027"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a1e95f986bd8c5191f438705b195191e3"> 1027</a></span> <a class="code" href="classgraphar_1_1_status.html">Status</a> <a class="code" href="classgraphar_1_1_edge_info.html#a1e95f986bd8c5191f438705b195191e3">EdgeInfo::Save</a>(<span class="keyword">const</span> std::string& path)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>  std::string no_url_path;</div>
-<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> fs, FileSystemFromUriOrPath(path, &no_url_path));</div>
-<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> yaml_content, this-><a class="code" href="classgraphar_1_1_edge_info.html#a80004230ddfbc892995732ea59993a27">Dump</a>());</div>
-<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>  <span class="keywordflow">return</span> fs->WriteValueToFile(yaml_content, no_url_path);</div>
-<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span> }</div>
-<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>  </div>
-<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span> <span class="keyword">namespace </span>{</div>
-<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>  </div>
-<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span> <span class="keyword">static</span> std::string PathToDirectory(<span class="keyword">const</span> std::string& path) {</div>
-<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>  <span class="keywordflow">if</span> (path.rfind(<span class="stringliteral">"s3://"</span>, 0) == 0) {</div>
-<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>  <span class="keywordtype">int</span> t = path.find_last_of(<span class="charliteral">'?'</span>);</div>
-<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>  std::string prefix = path.substr(0, t);</div>
-<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>  std::string suffix = path.substr(t);</div>
-<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> last_slash_idx = prefix.rfind(<span class="charliteral">'/'</span>);</div>
-<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>  <span class="keywordflow">if</span> (std::string::npos != last_slash_idx) {</div>
-<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>  <span class="keywordflow">return</span> prefix.substr(0, last_slash_idx + 1) + suffix;</div>
-<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>  }</div>
-<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>  } <span class="keywordflow">else</span> {</div>
-<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> last_slash_idx = path.rfind(<span class="charliteral">'/'</span>);</div>
-<div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>  <span class="keywordflow">if</span> (std::string::npos != last_slash_idx) {</div>
-<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>  <span class="keywordflow">return</span> path.substr(0, last_slash_idx + 1); <span class="comment">// +1 to include the slash</span></div>
-<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>  }</div>
-<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>  }</div>
-<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>  <span class="keywordflow">return</span> path;</div>
-<div class="line"><a name="l01052"></a><span class="lineno"> 1052</span> }</div>
-<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  </div>
-<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span> <span class="keyword">static</span> Result<std::shared_ptr<GraphInfo>> ConstructGraphInfo(</div>
-<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>  std::shared_ptr<Yaml> graph_meta, <span class="keyword">const</span> std::string& default_name,</div>
-<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>  <span class="keyword">const</span> std::string& default_prefix, <span class="keyword">const</span> std::shared_ptr<FileSystem> fs,</div>
-<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>  <span class="keyword">const</span> std::string& no_url_path) {</div>
-<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  std::string name = default_name;</div>
-<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>  std::string prefix = default_prefix;</div>
-<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>  <span class="keywordflow">if</span> (!graph_meta->operator[](<span class="stringliteral">"name"</span>).IsNone()) {</div>
-<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>  name = graph_meta->operator[](<span class="stringliteral">"name"</span>).As<std::string>();</div>
-<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>  }</div>
-<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>  <span class="keywordflow">if</span> (!graph_meta->operator[](<span class="stringliteral">"prefix"</span>).IsNone()) {</div>
-<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>  prefix = graph_meta->operator[](<span class="stringliteral">"prefix"</span>).As<std::string>();</div>
-<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>  }</div>
-<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>  std::shared_ptr<const InfoVersion> version = <span class="keyword">nullptr</span>;</div>
-<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>  <span class="keywordflow">if</span> (!graph_meta->operator[](<span class="stringliteral">"version"</span>).IsNone()) {</div>
-<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>  GAR_ASSIGN_OR_RAISE(</div>
-<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>  version, <a class="code" href="classgraphar_1_1_info_version.html#a6c149bd120118e7c6803dcac71a7a667">InfoVersion::Parse</a>(</div>
-<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>  graph_meta->operator[](<span class="stringliteral">"version"</span>).As<std::string>()));</div>
-<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>  }</div>
-<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>  std::unordered_map<std::string, std::string> extra_info;</div>
-<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>  <span class="keywordflow">if</span> (!graph_meta->operator[](<span class="stringliteral">"extra_info"</span>).IsNone()) {</div>
-<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>  <span class="keyword">auto</span>& extra_info_node = graph_meta->operator[](<span class="stringliteral">"extra_info"</span>);</div>
-<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = extra_info_node.Begin(); it != extra_info_node.End(); it++) {</div>
-<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>  <span class="keyword">auto</span> node = (*it).second;</div>
-<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>  <span class="keyword">auto</span> key = node[<span class="stringliteral">"key"</span>].As<std::string>();</div>
-<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>  <span class="keyword">auto</span> value = node[<span class="stringliteral">"value"</span>].As<std::string>();</div>
-<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>  extra_info.emplace(key, value);</div>
-<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>  }</div>
-<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>  }</div>
-<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>  </div>
-<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>  VertexInfoVector vertex_infos;</div>
-<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>  EdgeInfoVector edge_infos;</div>
-<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>  <span class="keyword">const</span> <span class="keyword">auto</span>& vertices = graph_meta->operator[](<span class="stringliteral">"vertices"</span>);</div>
-<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>  <span class="keywordflow">if</span> (vertices.IsSequence()) {</div>
-<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = vertices.Begin(); it != vertices.End(); it++) {</div>
-<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>  std::string vertex_meta_file =</div>
-<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>  no_url_path + (*it).second.As<std::string>();</div>
-<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> input,</div>
-<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>  fs->ReadFileToValue<std::string>(vertex_meta_file));</div>
-<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> vertex_meta, <a class="code" href="classgraphar_1_1_yaml.html#a2fff6ba5eaf3e59b489d015f10013179">Yaml::Load</a>(input));</div>
-<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> vertex_info, <a class="code" href="classgraphar_1_1_vertex_info.html#af1ade1caa6e70e4b7ce60cf4df7ac50c">VertexInfo::Load</a>(vertex_meta));</div>
-<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>  vertex_infos.push_back(vertex_info);</div>
-<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>  }</div>
-<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>  }</div>
-<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>  <span class="keyword">const</span> <span class="keyword">auto</span>& edges = graph_meta->operator[](<span class="stringliteral">"edges"</span>);</div>
-<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>  <span class="keywordflow">if</span> (edges.IsSequence()) {</div>
-<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = edges.Begin(); it != edges.End(); it++) {</div>
-<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>  std::string edge_meta_file = no_url_path + (*it).second.As<std::string>();</div>
-<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> input,</div>
-<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>  fs->ReadFileToValue<std::string>(edge_meta_file));</div>
-<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> edge_meta, <a class="code" href="classgraphar_1_1_yaml.html#a2fff6ba5eaf3e59b489d015f10013179">Yaml::Load</a>(input));</div>
-<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> edge_info, <a class="code" href="classgraphar_1_1_edge_info.html#a0ac67e1cf3b3fa79b6fcbc054869d0e5">EdgeInfo::Load</a>(edge_meta));</div>
-<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>  edge_infos.push_back(edge_info);</div>
-<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>  }</div>
-<div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>  }</div>
-<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>  </div>
-<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>  std::vector<std::string> labels;</div>
-<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>  <span class="keywordflow">if</span> (!graph_meta->operator[](<span class="stringliteral">"labels"</span>).IsNone()) {</div>
-<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>  <span class="keyword">const</span> <span class="keyword">auto</span>& labels_node = graph_meta->operator[](<span class="stringliteral">"labels"</span>);</div>
-<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>  <span class="keywordflow">if</span> (labels_node.IsSequence()) {</div>
-<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = labels_node.Begin(); it != labels_node.End(); it++) {</div>
-<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>  labels.push_back((*it).second.As<std::string>());</div>
-<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>  }</div>
-<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>  }</div>
-<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>  }</div>
-<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>  <span class="keywordflow">return</span> std::make_shared<GraphInfo>(name, vertex_infos, edge_infos, labels,</div>
-<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>  prefix, version, extra_info);</div>
-<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span> }</div>
-<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>  </div>
-<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span> } <span class="comment">// namespace</span></div>
-<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>  </div>
-<div class="line"><a name="l01124"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info_1_1_impl.html"> 1124</a></span> <span class="keyword">class </span><a class="code" href="classgraphar_1_1_graph_info_1_1_impl.html">GraphInfo::Impl</a> {</div>
-<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>  <span class="keyword">public</span>:</div>
-<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>  <a class="code" href="classgraphar_1_1_graph_info_1_1_impl.html">Impl</a>(<span class="keyword">const</span> std::string& graph_name, VertexInfoVector vertex_infos,</div>
-<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>  EdgeInfoVector edge_infos, <span class="keyword">const</span> std::vector<std::string>& labels,</div>
-<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>  <span class="keyword">const</span> std::string& prefix, std::shared_ptr<const InfoVersion> <a class="code" href="classgraphar_1_1_graph_info.html#aeb68a7550c63365d8093136601a3aeee">version</a>,</div>
-<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>  <span class="keyword">const</span> std::unordered_map<std::string, std::string>& extra_info)</div>
-<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>  : name_(graph_name),</div>
-<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>  vertex_infos_(std::move(vertex_infos)),</div>
-<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>  edge_infos_(std::move(edge_infos)),</div>
-<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>  labels_(labels),</div>
-<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>  prefix_(prefix),</div>
-<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>  version_(std::move(<a class="code" href="classgraphar_1_1_graph_info.html#aeb68a7550c63365d8093136601a3aeee">version</a>)),</div>
-<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>  extra_info_(extra_info) {</div>
-<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < vertex_infos_.size(); i++) {</div>
-<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>  <span class="keywordflow">if</span> (vertex_infos_[i] != <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>  vtype_to_index_[vertex_infos_[i]->GetType()] = i;</div>
-<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>  }</div>
-<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>  }</div>
-<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < edge_infos_.size(); i++) {</div>
-<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>  <span class="keywordflow">if</span> (edge_infos_[i] != <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>  std::string edge_key = ConcatEdgeTriple(edge_infos_[i]->GetSrcType(),</div>
-<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>  edge_infos_[i]->GetEdgeType(),</div>
-<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>  edge_infos_[i]->GetDstType());</div>
-<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>  etype_to_index_[edge_key] = i;</div>
-<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>  }</div>
-<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>  }</div>
-<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>  }</div>
-<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>  </div>
-<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>  <span class="keywordtype">bool</span> is_validated() <span class="keyword">const</span> noexcept {</div>
-<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>  <span class="keywordflow">if</span> (name_.empty() || prefix_.empty()) {</div>
-<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>  }</div>
-<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& v : vertex_infos_) {</div>
-<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>  <span class="keywordflow">if</span> (!v || !v->IsValidated()) {</div>
-<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>  }</div>
+<div class="line"><a name="l00837"></a><span class="lineno"> 837</span>  CHECK_HAS_ADJ_LIST_TYPE(adj_list_type);</div>
+<div class="line"><a name="l00838"></a><span class="lineno"> 838</span>  <span class="keywordtype">int</span> i = impl_->adjacent_list_type_to_index_.at(adj_list_type);</div>
+<div class="line"><a name="l00839"></a><span class="lineno"> 839</span>  <span class="keywordflow">return</span> BuildPath({impl_->prefix_, impl_->adjacent_lists_[i]->GetPrefix(),</div>
+<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  property_group->GetPrefix()});</div>
+<div class="line"><a name="l00841"></a><span class="lineno"> 841</span> }</div>
+<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  </div>
+<div class="line"><a name="l00843"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a37fa8536c627a5e5f529e8ee6d3d7506"> 843</a></span> Result<std::shared_ptr<DataType>> <a class="code" href="classgraphar_1_1_edge_info.html#a37fa8536c627a5e5f529e8ee6d3d7506">EdgeInfo::GetPropertyType</a>(</div>
+<div class="line"><a name="l00844"></a><span class="lineno"> 844</span>  <span class="keyword">const</span> std::string& property_name)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00845"></a><span class="lineno"> 845</span>  <span class="keyword">auto</span> it = impl_->property_name_to_type_.find(property_name);</div>
+<div class="line"><a name="l00846"></a><span class="lineno"> 846</span>  <span class="keywordflow">if</span> (it == impl_->property_name_to_type_.end()) {</div>
+<div class="line"><a name="l00847"></a><span class="lineno"> 847</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"property name not found: "</span>, property_name);</div>
+<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  }</div>
+<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  <span class="keywordflow">return</span> it->second;</div>
+<div class="line"><a name="l00850"></a><span class="lineno"> 850</span> }</div>
+<div class="line"><a name="l00851"></a><span class="lineno"> 851</span>  </div>
+<div class="line"><a name="l00852"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a5bd430ba21f5dfb230b978e03c4020ef"> 852</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#a5bd430ba21f5dfb230b978e03c4020ef">EdgeInfo::IsPrimaryKey</a>(<span class="keyword">const</span> std::string& property_name)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00853"></a><span class="lineno"> 853</span>  <span class="keyword">auto</span> it = impl_->property_name_to_primary_.find(property_name);</div>
+<div class="line"><a name="l00854"></a><span class="lineno"> 854</span>  <span class="keywordflow">if</span> (it == impl_->property_name_to_primary_.end()) {</div>
+<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  }</div>
+<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  <span class="keywordflow">return</span> it->second;</div>
+<div class="line"><a name="l00858"></a><span class="lineno"> 858</span> }</div>
+<div class="line"><a name="l00859"></a><span class="lineno"> 859</span>  </div>
+<div class="line"><a name="l00860"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a80b00d930f22870d00331a639c9cc26e"> 860</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#a80b00d930f22870d00331a639c9cc26e">EdgeInfo::IsNullableKey</a>(<span class="keyword">const</span> std::string& property_name)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00861"></a><span class="lineno"> 861</span>  <span class="keyword">auto</span> it = impl_->property_name_to_nullable_.find(property_name);</div>
+<div class="line"><a name="l00862"></a><span class="lineno"> 862</span>  <span class="keywordflow">if</span> (it == impl_->property_name_to_nullable_.end()) {</div>
+<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  }</div>
+<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  <span class="keywordflow">return</span> it->second;</div>
+<div class="line"><a name="l00866"></a><span class="lineno"> 866</span> }</div>
+<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  </div>
+<div class="line"><a name="l00868"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a6e5b4fdc98d8399564396fb63955c62a"> 868</a></span> Result<std::shared_ptr<EdgeInfo>> <a class="code" href="classgraphar_1_1_edge_info.html#a6e5b4fdc98d8399564396fb63955c62a">EdgeInfo::AddAdjacentList</a>(</div>
+<div class="line"><a name="l00869"></a><span class="lineno"> 869</span>  std::shared_ptr<AdjacentList> adj_list)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  <span class="keywordflow">if</span> (adj_list == <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"adj list is nullptr"</span>);</div>
+<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>  }</div>
+<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  <span class="keywordflow">if</span> (<a class="code" href="classgraphar_1_1_edge_info.html#aaa6633dc8136cec806cbcf42c2cf136d">HasAdjacentListType</a>(adj_list->GetType())) {</div>
+<div class="line"><a name="l00874"></a><span class="lineno"> 874</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"adj list type already exists: "</span>,</div>
+<div class="line"><a name="l00875"></a><span class="lineno"> 875</span>  AdjListTypeToString(adj_list->GetType()));</div>
+<div class="line"><a name="l00876"></a><span class="lineno"> 876</span>  }</div>
+<div class="line"><a name="l00877"></a><span class="lineno"> 877</span>  <span class="keywordflow">return</span> std::make_shared<EdgeInfo>(</div>
+<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  impl_->src_type_, impl_->edge_type_, impl_->dst_type_, impl_->chunk_size_,</div>
+<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  impl_->src_chunk_size_, impl_->dst_chunk_size_, impl_->directed_,</div>
+<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  AddVectorElement(impl_->adjacent_lists_, adj_list),</div>
+<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  impl_->property_groups_, impl_->prefix_, impl_->version_);</div>
+<div class="line"><a name="l00882"></a><span class="lineno"> 882</span> }</div>
+<div class="line"><a name="l00883"></a><span class="lineno"> 883</span>  </div>
+<div class="line"><a name="l00884"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a7db36496a4cf0eb517b463de5caa125f"> 884</a></span> Result<std::shared_ptr<EdgeInfo>> <a class="code" href="classgraphar_1_1_edge_info.html#a7db36496a4cf0eb517b463de5caa125f">EdgeInfo::RemoveAdjacentList</a>(</div>
+<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  std::shared_ptr<AdjacentList> adj_list)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>  <span class="keywordflow">if</span> (adj_list == <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"adj list is nullptr"</span>);</div>
+<div class="line"><a name="l00888"></a><span class="lineno"> 888</span>  }</div>
+<div class="line"><a name="l00889"></a><span class="lineno"> 889</span>  <span class="keywordtype">int</span> idx = -1;</div>
+<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < impl_->adjacent_lists_.size(); i++) {</div>
+<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  <span class="keywordflow">if</span> (impl_->adjacent_lists_[i]->GetType() == adj_list->GetType()) {</div>
+<div class="line"><a name="l00892"></a><span class="lineno"> 892</span>  idx = i;</div>
+<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  <span class="keywordflow">break</span>;</div>
+<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  }</div>
+<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  }</div>
+<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  <span class="keywordflow">if</span> (idx == -1) {</div>
+<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"adj list not found"</span>);</div>
+<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>  }</div>
+<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>  <span class="keywordflow">return</span> std::make_shared<EdgeInfo>(</div>
+<div class="line"><a name="l00900"></a><span class="lineno"> 900</span>  impl_->src_type_, impl_->edge_type_, impl_->dst_type_, impl_->chunk_size_,</div>
+<div class="line"><a name="l00901"></a><span class="lineno"> 901</span>  impl_->src_chunk_size_, impl_->dst_chunk_size_, impl_->directed_,</div>
+<div class="line"><a name="l00902"></a><span class="lineno"> 902</span>  RemoveVectorElement(impl_->adjacent_lists_, <span class="keyword">static_cast<</span><span class="keywordtype">size_t</span><span class="keyword">></span>(idx)),</div>
+<div class="line"><a name="l00903"></a><span class="lineno"> 903</span>  impl_->property_groups_, impl_->prefix_, impl_->version_);</div>
+<div class="line"><a name="l00904"></a><span class="lineno"> 904</span> }</div>
+<div class="line"><a name="l00905"></a><span class="lineno"> 905</span>  </div>
+<div class="line"><a name="l00906"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a9620f838addfdcb892b30e80e2cc4239"> 906</a></span> Result<std::shared_ptr<EdgeInfo>> <a class="code" href="classgraphar_1_1_edge_info.html#a9620f838addfdcb892b30e80e2cc4239">EdgeInfo::AddPropertyGroup</a>(</div>
+<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  std::shared_ptr<PropertyGroup> property_group)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00908"></a><span class="lineno"> 908</span>  <span class="keywordflow">if</span> (property_group == <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l00909"></a><span class="lineno"> 909</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"property group is nullptr"</span>);</div>
+<div class="line"><a name="l00910"></a><span class="lineno"> 910</span>  }</div>
+<div class="line"><a name="l00911"></a><span class="lineno"> 911</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& property : property_group->GetProperties()) {</div>
+<div class="line"><a name="l00912"></a><span class="lineno"> 912</span>  <span class="keywordflow">if</span> (<a class="code" href="classgraphar_1_1_edge_info.html#a69182fa8d45bb0e7d4ac230adb1239b2">HasProperty</a>(property.name)) {</div>
+<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"property in property group already exists: "</span>,</div>
+<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>  property.name);</div>
+<div class="line"><a name="l00915"></a><span class="lineno"> 915</span>  }</div>
+<div class="line"><a name="l00916"></a><span class="lineno"> 916</span>  }</div>
+<div class="line"><a name="l00917"></a><span class="lineno"> 917</span>  <span class="keywordflow">return</span> std::make_shared<EdgeInfo>(</div>
+<div class="line"><a name="l00918"></a><span class="lineno"> 918</span>  impl_->src_type_, impl_->edge_type_, impl_->dst_type_, impl_->chunk_size_,</div>
+<div class="line"><a name="l00919"></a><span class="lineno"> 919</span>  impl_->src_chunk_size_, impl_->dst_chunk_size_, impl_->directed_,</div>
+<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  impl_->adjacent_lists_,</div>
+<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  AddVectorElement(impl_->property_groups_, property_group), impl_->prefix_,</div>
+<div class="line"><a name="l00922"></a><span class="lineno"> 922</span>  impl_->version_);</div>
+<div class="line"><a name="l00923"></a><span class="lineno"> 923</span> }</div>
+<div class="line"><a name="l00924"></a><span class="lineno"> 924</span>  </div>
+<div class="line"><a name="l00925"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a264853429b84060bbe36c671d5bc8963"> 925</a></span> Result<std::shared_ptr<EdgeInfo>> <a class="code" href="classgraphar_1_1_edge_info.html#a264853429b84060bbe36c671d5bc8963">EdgeInfo::RemovePropertyGroup</a>(</div>
+<div class="line"><a name="l00926"></a><span class="lineno"> 926</span>  std::shared_ptr<PropertyGroup> property_group)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l00927"></a><span class="lineno"> 927</span>  <span class="keywordflow">if</span> (property_group == <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"property group is nullptr"</span>);</div>
+<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  }</div>
+<div class="line"><a name="l00930"></a><span class="lineno"> 930</span>  <span class="keywordtype">int</span> idx = -1;</div>
+<div class="line"><a name="l00931"></a><span class="lineno"> 931</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < impl_->property_groups_.size(); i++) {</div>
+<div class="line"><a name="l00932"></a><span class="lineno"> 932</span>  <span class="keywordflow">if</span> (*(impl_->property_groups_[i]) == *property_group) {</div>
+<div class="line"><a name="l00933"></a><span class="lineno"> 933</span>  idx = i;</div>
+<div class="line"><a name="l00934"></a><span class="lineno"> 934</span>  }</div>
+<div class="line"><a name="l00935"></a><span class="lineno"> 935</span>  }</div>
+<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>  <span class="keywordflow">if</span> (idx == -1) {</div>
+<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"property group not found"</span>);</div>
+<div class="line"><a name="l00938"></a><span class="lineno"> 938</span>  }</div>
+<div class="line"><a name="l00939"></a><span class="lineno"> 939</span>  <span class="keywordflow">return</span> std::make_shared<EdgeInfo>(</div>
+<div class="line"><a name="l00940"></a><span class="lineno"> 940</span>  impl_->src_type_, impl_->edge_type_, impl_->dst_type_, impl_->chunk_size_,</div>
+<div class="line"><a name="l00941"></a><span class="lineno"> 941</span>  impl_->src_chunk_size_, impl_->dst_chunk_size_, impl_->directed_,</div>
+<div class="line"><a name="l00942"></a><span class="lineno"> 942</span>  impl_->adjacent_lists_,</div>
+<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  RemoveVectorElement(impl_->property_groups_, <span class="keyword">static_cast<</span><span class="keywordtype">size_t</span><span class="keyword">></span>(idx)),</div>
+<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>  impl_->prefix_, impl_->version_);</div>
+<div class="line"><a name="l00945"></a><span class="lineno"> 945</span> }</div>
+<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  </div>
+<div class="line"><a name="l00947"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a3dca57726506375cab4fc43fdef2914f"> 947</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#a3dca57726506375cab4fc43fdef2914f">EdgeInfo::IsValidated</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->is_validated(); }</div>
+<div class="line"><a name="l00948"></a><span class="lineno"> 948</span>  </div>
+<div class="line"><a name="l00949"></a><span class="lineno"> 949</span> std::shared_ptr<EdgeInfo> CreateEdgeInfo(</div>
+<div class="line"><a name="l00950"></a><span class="lineno"> 950</span>  <span class="keyword">const</span> std::string& src_type, <span class="keyword">const</span> std::string& edge_type,</div>
+<div class="line"><a name="l00951"></a><span class="lineno"> 951</span>  <span class="keyword">const</span> std::string& dst_type, IdType chunk_size, IdType src_chunk_size,</div>
+<div class="line"><a name="l00952"></a><span class="lineno"> 952</span>  IdType dst_chunk_size, <span class="keywordtype">bool</span> directed,</div>
+<div class="line"><a name="l00953"></a><span class="lineno"> 953</span>  <span class="keyword">const</span> AdjacentListVector& adjacent_lists,</div>
+<div class="line"><a name="l00954"></a><span class="lineno"> 954</span>  <span class="keyword">const</span> PropertyGroupVector& property_groups, <span class="keyword">const</span> std::string& prefix,</div>
+<div class="line"><a name="l00955"></a><span class="lineno"> 955</span>  std::shared_ptr<const InfoVersion> version) {</div>
+<div class="line"><a name="l00956"></a><span class="lineno"> 956</span>  <span class="keywordflow">if</span> (src_type.empty() || edge_type.empty() || dst_type.empty() ||</div>
+<div class="line"><a name="l00957"></a><span class="lineno"> 957</span>  chunk_size <= 0 || src_chunk_size <= 0 || dst_chunk_size <= 0 ||</div>
+<div class="line"><a name="l00958"></a><span class="lineno"> 958</span>  adjacent_lists.empty()) {</div>
+<div class="line"><a name="l00959"></a><span class="lineno"> 959</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l00960"></a><span class="lineno"> 960</span>  }</div>
+<div class="line"><a name="l00961"></a><span class="lineno"> 961</span>  <span class="keywordflow">return</span> std::make_shared<EdgeInfo>(</div>
+<div class="line"><a name="l00962"></a><span class="lineno"> 962</span>  src_type, edge_type, dst_type, chunk_size, src_chunk_size, dst_chunk_size,</div>
+<div class="line"><a name="l00963"></a><span class="lineno"> 963</span>  directed, adjacent_lists, property_groups, prefix, version);</div>
+<div class="line"><a name="l00964"></a><span class="lineno"> 964</span> }</div>
+<div class="line"><a name="l00965"></a><span class="lineno"> 965</span>  </div>
+<div class="line"><a name="l00966"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a0ac67e1cf3b3fa79b6fcbc054869d0e5"> 966</a></span> Result<std::shared_ptr<EdgeInfo>> <a class="code" href="classgraphar_1_1_edge_info.html#a0ac67e1cf3b3fa79b6fcbc054869d0e5">EdgeInfo::Load</a>(std::shared_ptr<Yaml> yaml) {</div>
+<div class="line"><a name="l00967"></a><span class="lineno"> 967</span>  <span class="keywordflow">if</span> (yaml == <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l00968"></a><span class="lineno"> 968</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"yaml shared pointer is nullptr."</span>);</div>
+<div class="line"><a name="l00969"></a><span class="lineno"> 969</span>  }</div>
+<div class="line"><a name="l00970"></a><span class="lineno"> 970</span>  std::string src_type = yaml->operator[](<span class="stringliteral">"src_type"</span>).As<std::string>();</div>
+<div class="line"><a name="l00971"></a><span class="lineno"> 971</span>  std::string edge_type = yaml->operator[](<span class="stringliteral">"edge_type"</span>).As<std::string>();</div>
+<div class="line"><a name="l00972"></a><span class="lineno"> 972</span>  std::string dst_type = yaml->operator[](<span class="stringliteral">"dst_type"</span>).As<std::string>();</div>
+<div class="line"><a name="l00973"></a><span class="lineno"> 973</span>  IdType chunk_size =</div>
+<div class="line"><a name="l00974"></a><span class="lineno"> 974</span>  <span class="keyword">static_cast<</span>IdType<span class="keyword">></span>(yaml->operator[](<span class="stringliteral">"chunk_size"</span>).As<int64_t>());</div>
+<div class="line"><a name="l00975"></a><span class="lineno"> 975</span>  IdType src_chunk_size =</div>
+<div class="line"><a name="l00976"></a><span class="lineno"> 976</span>  <span class="keyword">static_cast<</span>IdType<span class="keyword">></span>(yaml->operator[](<span class="stringliteral">"src_chunk_size"</span>).As<int64_t>());</div>
+<div class="line"><a name="l00977"></a><span class="lineno"> 977</span>  IdType dst_chunk_size =</div>
+<div class="line"><a name="l00978"></a><span class="lineno"> 978</span>  <span class="keyword">static_cast<</span>IdType<span class="keyword">></span>(yaml->operator[](<span class="stringliteral">"dst_chunk_size"</span>).As<int64_t>());</div>
+<div class="line"><a name="l00979"></a><span class="lineno"> 979</span>  <span class="keywordtype">bool</span> directed = yaml->operator[](<span class="stringliteral">"directed"</span>).As<bool>();</div>
+<div class="line"><a name="l00980"></a><span class="lineno"> 980</span>  std::string prefix;</div>
+<div class="line"><a name="l00981"></a><span class="lineno"> 981</span>  <span class="keywordflow">if</span> (!yaml->operator[](<span class="stringliteral">"prefix"</span>).IsNone()) {</div>
+<div class="line"><a name="l00982"></a><span class="lineno"> 982</span>  prefix = yaml->operator[](<span class="stringliteral">"prefix"</span>).As<std::string>();</div>
+<div class="line"><a name="l00983"></a><span class="lineno"> 983</span>  }</div>
+<div class="line"><a name="l00984"></a><span class="lineno"> 984</span>  std::shared_ptr<const InfoVersion> <a class="code" href="classgraphar_1_1_edge_info.html#a9440bef05f4fa689662f26a9ef0117c1">version</a> = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l00985"></a><span class="lineno"> 985</span>  <span class="keywordflow">if</span> (!yaml->operator[](<span class="stringliteral">"version"</span>).IsNone()) {</div>
+<div class="line"><a name="l00986"></a><span class="lineno"> 986</span>  GAR_ASSIGN_OR_RAISE(</div>
+<div class="line"><a name="l00987"></a><span class="lineno"> 987</span>  <a class="code" href="classgraphar_1_1_edge_info.html#a9440bef05f4fa689662f26a9ef0117c1">version</a>,</div>
+<div class="line"><a name="l00988"></a><span class="lineno"> 988</span>  <a class="code" href="classgraphar_1_1_info_version.html#a6c149bd120118e7c6803dcac71a7a667">InfoVersion::Parse</a>(yaml->operator[](<span class="stringliteral">"version"</span>).As<std::string>()));</div>
+<div class="line"><a name="l00989"></a><span class="lineno"> 989</span>  }</div>
+<div class="line"><a name="l00990"></a><span class="lineno"> 990</span>  </div>
+<div class="line"><a name="l00991"></a><span class="lineno"> 991</span>  AdjacentListVector adjacent_lists;</div>
+<div class="line"><a name="l00992"></a><span class="lineno"> 992</span>  PropertyGroupVector property_groups;</div>
+<div class="line"><a name="l00993"></a><span class="lineno"> 993</span>  <span class="keyword">auto</span> adj_lists_node = yaml->operator[](<span class="stringliteral">"adj_lists"</span>);</div>
+<div class="line"><a name="l00994"></a><span class="lineno"> 994</span>  <span class="keywordflow">if</span> (adj_lists_node.IsSequence()) {</div>
+<div class="line"><a name="l00995"></a><span class="lineno"> 995</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = adj_lists_node.Begin(); it != adj_lists_node.End(); it++) {</div>
+<div class="line"><a name="l00996"></a><span class="lineno"> 996</span>  <span class="keyword">auto</span>& node = (*it).second;</div>
+<div class="line"><a name="l00997"></a><span class="lineno"> 997</span>  <span class="keyword">auto</span> ordered = node[<span class="stringliteral">"ordered"</span>].As<<span class="keywordtype">bool</span>>();</div>
+<div class="line"><a name="l00998"></a><span class="lineno"> 998</span>  <span class="keyword">auto</span> aligned = node[<span class="stringliteral">"aligned_by"</span>].As<std::string>();</div>
+<div class="line"><a name="l00999"></a><span class="lineno"> 999</span>  <span class="keyword">auto</span> adj_list_type = OrderedAlignedToAdjListType(ordered, aligned);</div>
+<div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>  <span class="keyword">auto</span> file_type = StringToFileType(node[<span class="stringliteral">"file_type"</span>].As<std::string>());</div>
+<div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>  std::string adj_list_prefix;</div>
+<div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>  <span class="keywordflow">if</span> (!node[<span class="stringliteral">"prefix"</span>].IsNone()) {</div>
+<div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>  adj_list_prefix = node[<span class="stringliteral">"prefix"</span>].As<std::string>();</div>
+<div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>  }</div>
+<div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>  adjacent_lists.push_back(std::make_shared<AdjacentList>(</div>
+<div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>  adj_list_type, file_type, adj_list_prefix));</div>
+<div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>  }</div>
+<div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>  }</div>
+<div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>  <span class="keyword">auto</span> property_groups_node = yaml->operator[](<span class="stringliteral">"property_groups"</span>);</div>
+<div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>  <span class="keywordflow">if</span> (!property_groups_node.IsNone()) { <span class="comment">// property_groups exist</span></div>
+<div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> pg_it = property_groups_node.Begin();</div>
+<div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>  pg_it != property_groups_node.End(); pg_it++) {</div>
+<div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>  <span class="keyword">auto</span>& pg_node = (*pg_it).second;</div>
+<div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>  std::string pg_prefix;</div>
+<div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>  <span class="keywordflow">if</span> (!pg_node[<span class="stringliteral">"prefix"</span>].IsNone()) {</div>
+<div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>  pg_prefix = pg_node[<span class="stringliteral">"prefix"</span>].As<std::string>();</div>
+<div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>  }</div>
+<div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>  <span class="keyword">auto</span> file_type = StringToFileType(pg_node[<span class="stringliteral">"file_type"</span>].As<std::string>());</div>
+<div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>  <span class="keyword">auto</span> properties = pg_node[<span class="stringliteral">"properties"</span>];</div>
+<div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>  std::vector<Property> property_vec;</div>
+<div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> p_it = properties.Begin(); p_it != properties.End(); p_it++) {</div>
+<div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>  <span class="keyword">auto</span>& p_node = (*p_it).second;</div>
+<div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>  <span class="keyword">auto</span> property_name = p_node[<span class="stringliteral">"name"</span>].As<std::string>();</div>
+<div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>  <span class="keyword">auto</span> property_type =</div>
+<div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>  DataType::TypeNameToDataType(p_node[<span class="stringliteral">"data_type"</span>].As<std::string>());</div>
+<div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>  <span class="keywordflow">if</span> (!p_node[<span class="stringliteral">"cardinality"</span>].IsNone() &&</div>
+<div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>  StringToCardinality(p_node[<span class="stringliteral">"cardinality"</span>].As<std::string>()) !=</div>
+<div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>  Cardinality::SINGLE) {</div>
+<div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a358b23c7f34efbf14c84cbc2ddbdd6a4">Status::YamlError</a>(</div>
+<div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>  <span class="stringliteral">"Unsupported set cardinality for edge property."</span>);</div>
+<div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>  }</div>
+<div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>  <span class="keywordtype">bool</span> is_primary = p_node[<span class="stringliteral">"is_primary"</span>].As<<span class="keywordtype">bool</span>>();</div>
+<div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>  <span class="keywordtype">bool</span> is_nullable =</div>
+<div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>  p_node[<span class="stringliteral">"is_nullable"</span>].IsNone() || p_node[<span class="stringliteral">"is_nullable"</span>].As<<span class="keywordtype">bool</span>>();</div>
+<div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>  property_vec.emplace_back(property_name, property_type, is_primary,</div>
+<div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>  is_nullable);</div>
+<div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>  }</div>
+<div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>  property_groups.push_back(</div>
+<div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>  std::make_shared<PropertyGroup>(property_vec, file_type, pg_prefix));</div>
+<div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>  }</div>
+<div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>  }</div>
+<div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>  <span class="keywordflow">return</span> std::make_shared<EdgeInfo>(</div>
+<div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>  src_type, edge_type, dst_type, chunk_size, src_chunk_size, dst_chunk_size,</div>
+<div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>  directed, adjacent_lists, property_groups, prefix, <a class="code" href="classgraphar_1_1_edge_info.html#a9440bef05f4fa689662f26a9ef0117c1">version</a>);</div>
+<div class="line"><a name="l01045"></a><span class="lineno"> 1045</span> }</div>
+<div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>  </div>
+<div class="line"><a name="l01047"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a5840f6d36ba8e8dab30c1f89534a7edf"> 1047</a></span> Result<std::shared_ptr<EdgeInfo>> <a class="code" href="classgraphar_1_1_edge_info.html#a0ac67e1cf3b3fa79b6fcbc054869d0e5">EdgeInfo::Load</a>(<span class="keyword">const</span> std::string& input) {</div>
+<div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> yaml, <a class="code" href="classgraphar_1_1_yaml.html#a2fff6ba5eaf3e59b489d015f10013179">Yaml::Load</a>(input));</div>
+<div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_edge_info.html#a0ac67e1cf3b3fa79b6fcbc054869d0e5">EdgeInfo::Load</a>(yaml);</div>
+<div class="line"><a name="l01050"></a><span class="lineno"> 1050</span> }</div>
+<div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>  </div>
+<div class="line"><a name="l01052"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a80004230ddfbc892995732ea59993a27"> 1052</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#a80004230ddfbc892995732ea59993a27">EdgeInfo::Dump</a>() const noexcept {</div>
+<div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>  <span class="keywordflow">if</span> (!<a class="code" href="classgraphar_1_1_edge_info.html#a3dca57726506375cab4fc43fdef2914f">IsValidated</a>()) {</div>
+<div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"The edge info is not validated."</span>);</div>
+<div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>  }</div>
+<div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>  std::string dump_string;</div>
+<div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>  ::Yaml::Node node;</div>
+<div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>  <span class="keywordflow">try</span> {</div>
+<div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>  node[<span class="stringliteral">"src_type"</span>] = impl_->src_type_;</div>
+<div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>  node[<span class="stringliteral">"edge_type"</span>] = impl_->edge_type_;</div>
+<div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>  node[<span class="stringliteral">"dst_type"</span>] = impl_->dst_type_;</div>
+<div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>  node[<span class="stringliteral">"chunk_size"</span>] = std::to_string(impl_->chunk_size_);</div>
+<div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>  node[<span class="stringliteral">"src_chunk_size"</span>] = std::to_string(impl_->src_chunk_size_);</div>
+<div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>  node[<span class="stringliteral">"dst_chunk_size"</span>] = std::to_string(impl_->dst_chunk_size_);</div>
+<div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>  node[<span class="stringliteral">"prefix"</span>] = impl_->prefix_;</div>
+<div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>  node[<span class="stringliteral">"directed"</span>] = impl_->directed_ ? <span class="stringliteral">"true"</span> : <span class="stringliteral">"false"</span>;</div>
+<div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& adjacent_list : impl_->adjacent_lists_) {</div>
+<div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>  ::Yaml::Node adj_list_node;</div>
+<div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>  <span class="keyword">auto</span> adj_list_type = adjacent_list->GetType();</div>
+<div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>  <span class="keyword">auto</span> pair = AdjListTypeToOrderedAligned(adj_list_type);</div>
+<div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>  adj_list_node[<span class="stringliteral">"ordered"</span>] = pair.first ? <span class="stringliteral">"true"</span> : <span class="stringliteral">"false"</span>;</div>
+<div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>  adj_list_node[<span class="stringliteral">"aligned_by"</span>] = pair.second;</div>
+<div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>  adj_list_node[<span class="stringliteral">"prefix"</span>] = adjacent_list->GetPrefix();</div>
+<div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>  adj_list_node[<span class="stringliteral">"file_type"</span>] =</div>
+<div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>  FileTypeToString(adjacent_list->GetFileType());</div>
+<div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>  node[<span class="stringliteral">"adj_lists"</span>].PushBack();</div>
+<div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>  node[<span class="stringliteral">"adj_lists"</span>][node[<span class="stringliteral">"adj_lists"</span>].Size() - 1] = adj_list_node;</div>
+<div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>  }</div>
+<div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& pg : impl_->property_groups_) {</div>
+<div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>  ::Yaml::Node pg_node;</div>
+<div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>  <span class="keywordflow">if</span> (!pg->GetPrefix().empty()) {</div>
+<div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>  pg_node[<span class="stringliteral">"prefix"</span>] = pg->GetPrefix();</div>
+<div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>  }</div>
+<div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>  pg_node[<span class="stringliteral">"file_type"</span>] = FileTypeToString(pg->GetFileType());</div>
+<div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& p : pg->GetProperties()) {</div>
+<div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>  ::Yaml::Node p_node;</div>
+<div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>  p_node[<span class="stringliteral">"name"</span>] = p.name;</div>
+<div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>  p_node[<span class="stringliteral">"data_type"</span>] = p.type->ToTypeName();</div>
+<div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>  p_node[<span class="stringliteral">"is_primary"</span>] = p.is_primary ? <span class="stringliteral">"true"</span> : <span class="stringliteral">"false"</span>;</div>
+<div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>  p_node[<span class="stringliteral">"is_nullable"</span>] = p.is_nullable ? <span class="stringliteral">"true"</span> : <span class="stringliteral">"false"</span>;</div>
+<div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>  pg_node[<span class="stringliteral">"properties"</span>].PushBack();</div>
+<div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>  pg_node[<span class="stringliteral">"properties"</span>][pg_node[<span class="stringliteral">"properties"</span>].Size() - 1] = p_node;</div>
+<div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>  }</div>
+<div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>  node[<span class="stringliteral">"property_groups"</span>].PushBack();</div>
+<div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>  node[<span class="stringliteral">"property_groups"</span>][node[<span class="stringliteral">"property_groups"</span>].Size() - 1] = pg_node;</div>
+<div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>  }</div>
+<div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>  <span class="keywordflow">if</span> (impl_->version_ != <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>  node[<span class="stringliteral">"version"</span>] = impl_->version_->ToString();</div>
+<div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>  }</div>
+<div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>  ::Yaml::Serialize(node, dump_string);</div>
+<div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>  } <span class="keywordflow">catch</span> (<span class="keyword">const</span> std::exception& e) {</div>
+<div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"Failed to dump edge info: "</span>, e.what());</div>
+<div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>  }</div>
+<div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>  <span class="keywordflow">return</span> dump_string;</div>
+<div class="line"><a name="l01105"></a><span class="lineno"> 1105</span> }</div>
+<div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>  </div>
+<div class="line"><a name="l01107"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html#a1e95f986bd8c5191f438705b195191e3"> 1107</a></span> <a class="code" href="classgraphar_1_1_status.html">Status</a> <a class="code" href="classgraphar_1_1_edge_info.html#a1e95f986bd8c5191f438705b195191e3">EdgeInfo::Save</a>(<span class="keyword">const</span> std::string& path)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>  std::string no_url_path;</div>
+<div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> fs, FileSystemFromUriOrPath(path, &no_url_path));</div>
+<div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> yaml_content, this-><a class="code" href="classgraphar_1_1_edge_info.html#a80004230ddfbc892995732ea59993a27">Dump</a>());</div>
+<div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>  <span class="keywordflow">return</span> fs->WriteValueToFile(yaml_content, no_url_path);</div>
+<div class="line"><a name="l01112"></a><span class="lineno"> 1112</span> }</div>
+<div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>  </div>
+<div class="line"><a name="l01114"></a><span class="lineno"> 1114</span> <span class="keyword">namespace </span>{</div>
+<div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>  </div>
+<div class="line"><a name="l01116"></a><span class="lineno"> 1116</span> <span class="keyword">static</span> std::string PathToDirectory(<span class="keyword">const</span> std::string& path) {</div>
+<div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>  <span class="keywordflow">if</span> (path.rfind(<span class="stringliteral">"s3://"</span>, 0) == 0) {</div>
+<div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>  <span class="keywordtype">int</span> t = path.find_last_of(<span class="charliteral">'?'</span>);</div>
+<div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>  std::string prefix = path.substr(0, t);</div>
+<div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>  std::string suffix = path.substr(t);</div>
+<div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> last_slash_idx = prefix.rfind(<span class="charliteral">'/'</span>);</div>
+<div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>  <span class="keywordflow">if</span> (std::string::npos != last_slash_idx) {</div>
+<div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>  <span class="keywordflow">return</span> prefix.substr(0, last_slash_idx + 1) + suffix;</div>
+<div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>  }</div>
+<div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>  } <span class="keywordflow">else</span> {</div>
+<div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>  <span class="keyword">const</span> <span class="keywordtype">size_t</span> last_slash_idx = path.rfind(<span class="charliteral">'/'</span>);</div>
+<div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>  <span class="keywordflow">if</span> (std::string::npos != last_slash_idx) {</div>
+<div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>  <span class="keywordflow">return</span> path.substr(0, last_slash_idx + 1); <span class="comment">// +1 to include the slash</span></div>
+<div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>  }</div>
+<div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>  }</div>
+<div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>  <span class="keywordflow">return</span> path;</div>
+<div class="line"><a name="l01132"></a><span class="lineno"> 1132</span> }</div>
+<div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>  </div>
+<div class="line"><a name="l01134"></a><span class="lineno"> 1134</span> <span class="keyword">static</span> Result<std::shared_ptr<GraphInfo>> ConstructGraphInfo(</div>
+<div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>  std::shared_ptr<Yaml> graph_meta, <span class="keyword">const</span> std::string& default_name,</div>
+<div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>  <span class="keyword">const</span> std::string& default_prefix, <span class="keyword">const</span> std::shared_ptr<FileSystem> fs,</div>
+<div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>  <span class="keyword">const</span> std::string& no_url_path) {</div>
+<div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>  std::string name = default_name;</div>
+<div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>  std::string prefix = default_prefix;</div>
+<div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>  <span class="keywordflow">if</span> (!graph_meta->operator[](<span class="stringliteral">"name"</span>).IsNone()) {</div>
+<div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>  name = graph_meta->operator[](<span class="stringliteral">"name"</span>).As<std::string>();</div>
+<div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>  }</div>
+<div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>  <span class="keywordflow">if</span> (!graph_meta->operator[](<span class="stringliteral">"prefix"</span>).IsNone()) {</div>
+<div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>  prefix = graph_meta->operator[](<span class="stringliteral">"prefix"</span>).As<std::string>();</div>
+<div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>  }</div>
+<div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>  std::shared_ptr<const InfoVersion> version = <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>  <span class="keywordflow">if</span> (!graph_meta->operator[](<span class="stringliteral">"version"</span>).IsNone()) {</div>
+<div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>  GAR_ASSIGN_OR_RAISE(</div>
+<div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>  version, <a class="code" href="classgraphar_1_1_info_version.html#a6c149bd120118e7c6803dcac71a7a667">InfoVersion::Parse</a>(</div>
+<div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>  graph_meta->operator[](<span class="stringliteral">"version"</span>).As<std::string>()));</div>
+<div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>  }</div>
+<div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>  std::unordered_map<std::string, std::string> extra_info;</div>
+<div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>  <span class="keywordflow">if</span> (!graph_meta->operator[](<span class="stringliteral">"extra_info"</span>).IsNone()) {</div>
+<div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>  <span class="keyword">auto</span>& extra_info_node = graph_meta->operator[](<span class="stringliteral">"extra_info"</span>);</div>
+<div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = extra_info_node.Begin(); it != extra_info_node.End(); it++) {</div>
+<div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>  <span class="keyword">auto</span> node = (*it).second;</div>
+<div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>  <span class="keyword">auto</span> key = node[<span class="stringliteral">"key"</span>].As<std::string>();</div>
+<div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>  <span class="keyword">auto</span> value = node[<span class="stringliteral">"value"</span>].As<std::string>();</div>
+<div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>  extra_info.emplace(key, value);</div>
<div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>  }</div>
-<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& e : edge_infos_) {</div>
-<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>  <span class="keywordflow">if</span> (!e || !e->IsValidated()) {</div>
-<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>  }</div>
-<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>  }</div>
-<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>  <span class="keywordflow">if</span> (vertex_infos_.size() != vtype_to_index_.size() ||</div>
-<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>  edge_infos_.size() != etype_to_index_.size()) {</div>
-<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
-<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>  }</div>
-<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
-<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>  }</div>
-<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>  </div>
-<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>  std::string name_;</div>
-<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>  VertexInfoVector vertex_infos_;</div>
-<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>  EdgeInfoVector edge_infos_;</div>
-<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>  std::vector<std::string> labels_;</div>
-<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>  std::string prefix_;</div>
-<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>  std::shared_ptr<const InfoVersion> version_;</div>
-<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>  std::unordered_map<std::string, std::string> extra_info_;</div>
-<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>  std::unordered_map<std::string, int> vtype_to_index_;</div>
-<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>  std::unordered_map<std::string, int> etype_to_index_;</div>
-<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span> };</div>
-<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>  </div>
-<div class="line"><a name="l01184"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a1b473deea923f7b2a57c339dc7e51192"> 1184</a></span> <a class="code" href="classgraphar_1_1_graph_info.html#a1b473deea923f7b2a57c339dc7e51192">GraphInfo::GraphInfo</a>(</div>
-<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>  <span class="keyword">const</span> std::string& graph_name, VertexInfoVector vertex_infos,</div>
-<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>  EdgeInfoVector edge_infos, <span class="keyword">const</span> std::vector<std::string>& labels,</div>
-<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>  <span class="keyword">const</span> std::string& prefix, std::shared_ptr<const InfoVersion> version,</div>
-<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>  <span class="keyword">const</span> std::unordered_map<std::string, std::string>& extra_info)</div>
-<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>  : impl_(new <a class="code" href="classgraphar_1_1_graph_info_1_1_impl.html">Impl</a>(graph_name, std::move(vertex_infos), std::move(edge_infos),</div>
-<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>  labels, prefix, version, extra_info)) {}</div>
-<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>  </div>
-<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span> GraphInfo::~GraphInfo() = <span class="keywordflow">default</span>;</div>
-<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>  </div>
-<div class="line"><a name="l01194"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#ab10cb1ceaa01a74d44c1076c43c2fcce"> 1194</a></span> <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_graph_info.html#ab10cb1ceaa01a74d44c1076c43c2fcce">GraphInfo::GetName</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->name_; }</div>
-<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>  </div>
-<div class="line"><a name="l01196"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a8b057bb6c3cfd897b0fb31ecceea40c9"> 1196</a></span> <span class="keyword">const</span> std::vector<std::string>& <a class="code" href="classgraphar_1_1_graph_info.html#a8b057bb6c3cfd897b0fb31ecceea40c9">GraphInfo::GetLabels</a>()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>  <span class="keywordflow">return</span> impl_->labels_;</div>
-<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span> }</div>
-<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>  </div>
-<div class="line"><a name="l01200"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a53eef3d15830bea15de0bbbe7e11e208"> 1200</a></span> <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_graph_info.html#a53eef3d15830bea15de0bbbe7e11e208">GraphInfo::GetPrefix</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->prefix_; }</div>
+<div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>  }</div>
+<div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>  </div>
+<div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>  VertexInfoVector vertex_infos;</div>
+<div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>  EdgeInfoVector edge_infos;</div>
+<div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>  <span class="keyword">const</span> <span class="keyword">auto</span>& vertices = graph_meta->operator[](<span class="stringliteral">"vertices"</span>);</div>
+<div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>  <span class="keywordflow">if</span> (vertices.IsSequence()) {</div>
+<div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = vertices.Begin(); it != vertices.End(); it++) {</div>
+<div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>  std::string vertex_meta_file =</div>
+<div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>  no_url_path + (*it).second.As<std::string>();</div>
+<div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> input,</div>
+<div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>  fs->ReadFileToValue<std::string>(vertex_meta_file));</div>
+<div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> vertex_meta, <a class="code" href="classgraphar_1_1_yaml.html#a2fff6ba5eaf3e59b489d015f10013179">Yaml::Load</a>(input));</div>
+<div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> vertex_info, <a class="code" href="classgraphar_1_1_vertex_info.html#af1ade1caa6e70e4b7ce60cf4df7ac50c">VertexInfo::Load</a>(vertex_meta));</div>
+<div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>  vertex_infos.push_back(vertex_info);</div>
+<div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>  }</div>
+<div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>  }</div>
+<div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>  <span class="keyword">const</span> <span class="keyword">auto</span>& edges = graph_meta->operator[](<span class="stringliteral">"edges"</span>);</div>
+<div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>  <span class="keywordflow">if</span> (edges.IsSequence()) {</div>
+<div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = edges.Begin(); it != edges.End(); it++) {</div>
+<div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>  std::string edge_meta_file = no_url_path + (*it).second.As<std::string>();</div>
+<div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> input,</div>
+<div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>  fs->ReadFileToValue<std::string>(edge_meta_file));</div>
+<div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> edge_meta, <a class="code" href="classgraphar_1_1_yaml.html#a2fff6ba5eaf3e59b489d015f10013179">Yaml::Load</a>(input));</div>
+<div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> edge_info, <a class="code" href="classgraphar_1_1_edge_info.html#a0ac67e1cf3b3fa79b6fcbc054869d0e5">EdgeInfo::Load</a>(edge_meta));</div>
+<div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>  edge_infos.push_back(edge_info);</div>
+<div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>  }</div>
+<div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>  }</div>
+<div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>  </div>
+<div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>  std::vector<std::string> labels;</div>
+<div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>  <span class="keywordflow">if</span> (!graph_meta->operator[](<span class="stringliteral">"labels"</span>).IsNone()) {</div>
+<div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>  <span class="keyword">const</span> <span class="keyword">auto</span>& labels_node = graph_meta->operator[](<span class="stringliteral">"labels"</span>);</div>
+<div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>  <span class="keywordflow">if</span> (labels_node.IsSequence()) {</div>
+<div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>  <span class="keywordflow">for</span> (<span class="keyword">auto</span> it = labels_node.Begin(); it != labels_node.End(); it++) {</div>
+<div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>  labels.push_back((*it).second.As<std::string>());</div>
+<div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>  }</div>
+<div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>  }</div>
+<div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>  }</div>
+<div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>  <span class="keywordflow">return</span> std::make_shared<GraphInfo>(name, vertex_infos, edge_infos, labels,</div>
+<div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>  prefix, version, extra_info);</div>
+<div class="line"><a name="l01200"></a><span class="lineno"> 1200</span> }</div>
<div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>  </div>
-<div class="line"><a name="l01202"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#aeb68a7550c63365d8093136601a3aeee"> 1202</a></span> <span class="keyword">const</span> std::shared_ptr<const InfoVersion>& <a class="code" href="classgraphar_1_1_graph_info.html#aeb68a7550c63365d8093136601a3aeee">GraphInfo::version</a>()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>  <span class="keywordflow">return</span> impl_->version_;</div>
-<div class="line"><a name="l01204"></a><span class="lineno"> 1204</span> }</div>
-<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>  </div>
-<div class="line"><a name="l01206"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#aa0856ec7ecc8d8d1aac2f7cd51cfe136"> 1206</a></span> <span class="keyword">const</span> std::unordered_map<std::string, std::string>& <a class="code" href="classgraphar_1_1_graph_info.html#aa0856ec7ecc8d8d1aac2f7cd51cfe136">GraphInfo::GetExtraInfo</a>()<span class="keyword"></span></div>
-<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span> <span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>  <span class="keywordflow">return</span> impl_->extra_info_;</div>
-<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span> }</div>
-<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>  </div>
-<div class="line"><a name="l01211"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a8799b4b1a2163507a9ddd8f910d4a9d3"> 1211</a></span> std::shared_ptr<VertexInfo> <a class="code" href="classgraphar_1_1_graph_info.html#a8799b4b1a2163507a9ddd8f910d4a9d3">GraphInfo::GetVertexInfo</a>(</div>
-<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>  <span class="keyword">const</span> std::string& type)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>  <span class="keywordtype">int</span> i = <a class="code" href="classgraphar_1_1_graph_info.html#a0f03270a6ee9c084dab10421cdf69cd5">GetVertexInfoIndex</a>(type);</div>
-<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>  <span class="keywordflow">return</span> i == -1 ? nullptr : impl_->vertex_infos_[i];</div>
-<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span> }</div>
-<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>  </div>
-<div class="line"><a name="l01217"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a0f03270a6ee9c084dab10421cdf69cd5"> 1217</a></span> <span class="keywordtype">int</span> <a class="code" href="classgraphar_1_1_graph_info.html#a0f03270a6ee9c084dab10421cdf69cd5">GraphInfo::GetVertexInfoIndex</a>(<span class="keyword">const</span> std::string& type)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>  <span class="keywordflow">return</span> LookupKeyIndex(impl_->vtype_to_index_, type);</div>
-<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span> }</div>
-<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>  </div>
-<div class="line"><a name="l01221"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a7e660710d2e1bd244b5d28bdc68aeab2"> 1221</a></span> std::shared_ptr<EdgeInfo> <a class="code" href="classgraphar_1_1_graph_info.html#a7e660710d2e1bd244b5d28bdc68aeab2">GraphInfo::GetEdgeInfo</a>(</div>
-<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>  <span class="keyword">const</span> std::string& src_type, <span class="keyword">const</span> std::string& edge_type,</div>
-<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>  <span class="keyword">const</span> std::string& dst_type)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>  <span class="keywordtype">int</span> i = <a class="code" href="classgraphar_1_1_graph_info.html#aa2ca1614d499facc76927b5de733b503">GetEdgeInfoIndex</a>(src_type, edge_type, dst_type);</div>
-<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>  <span class="keywordflow">return</span> i == -1 ? nullptr : impl_->edge_infos_[i];</div>
-<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span> }</div>
-<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>  </div>
-<div class="line"><a name="l01228"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#aa2ca1614d499facc76927b5de733b503"> 1228</a></span> <span class="keywordtype">int</span> <a class="code" href="classgraphar_1_1_graph_info.html#aa2ca1614d499facc76927b5de733b503">GraphInfo::GetEdgeInfoIndex</a>(<span class="keyword">const</span> std::string& src_type,</div>
-<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>  <span class="keyword">const</span> std::string& edge_type,</div>
-<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>  <span class="keyword">const</span> std::string& dst_type)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>  std::string edge_key = ConcatEdgeTriple(src_type, edge_type, dst_type);</div>
-<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>  <span class="keywordflow">return</span> LookupKeyIndex(impl_->etype_to_index_, edge_key);</div>
-<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span> }</div>
-<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>  </div>
-<div class="line"><a name="l01235"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#aa384328a58c9138b5b77ea6172199d07"> 1235</a></span> <span class="keywordtype">int</span> <a class="code" href="classgraphar_1_1_graph_info.html#aa384328a58c9138b5b77ea6172199d07">GraphInfo::VertexInfoNum</a>()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(impl_->vertex_infos_.size());</div>
-<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span> }</div>
-<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>  </div>
-<div class="line"><a name="l01239"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a814f2cdeecf58a308ab886a085991fc4"> 1239</a></span> <span class="keywordtype">int</span> <a class="code" href="classgraphar_1_1_graph_info.html#a814f2cdeecf58a308ab886a085991fc4">GraphInfo::EdgeInfoNum</a>()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(impl_->edge_infos_.size());</div>
-<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span> }</div>
-<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>  </div>
-<div class="line"><a name="l01243"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a3a94e3d0f64a1b4d1b672676940c389f"> 1243</a></span> <span class="keyword">const</span> std::shared_ptr<VertexInfo> <a class="code" href="classgraphar_1_1_graph_info.html#a3a94e3d0f64a1b4d1b672676940c389f">GraphInfo::GetVertexInfoByIndex</a>(</div>
-<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>  <span class="keywordtype">int</span> index)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>  <span class="keywordflow">if</span> (index < 0 || index >= <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(impl_->vertex_infos_.size())) {</div>
-<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
-<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>  }</div>
-<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>  <span class="keywordflow">return</span> impl_->vertex_infos_[index];</div>
-<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span> }</div>
-<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>  </div>
-<div class="line"><a name="l01251"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#afd61923bd9ff1f5329b1c93ebbcd0278"> 1251</a></span> <span class="keyword">const</span> std::shared_ptr<EdgeInfo> <a class="code" href="classgraphar_1_1_graph_info.html#afd61923bd9ff1f5329b1c93ebbcd0278">GraphInfo::GetEdgeInfoByIndex</a>(<span class="keywordtype">int</span> index)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>  <span class="keywordflow">if</span> (index < 0 || index >= <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(impl_->edge_infos_.size())) {</div>
-<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
-<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>  }</div>
-<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>  <span class="keywordflow">return</span> impl_->edge_infos_[index];</div>
-<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span> }</div>
-<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>  </div>
-<div class="line"><a name="l01258"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a9393d2797ff5d77f66691f84f15007c4"> 1258</a></span> <span class="keyword">const</span> VertexInfoVector& <a class="code" href="classgraphar_1_1_graph_info.html#a9393d2797ff5d77f66691f84f15007c4">GraphInfo::GetVertexInfos</a>()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>  <span class="keywordflow">return</span> impl_->vertex_infos_;</div>
-<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span> }</div>
-<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>  </div>
-<div class="line"><a name="l01262"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a14dbabaec827198ee822070c1077a570"> 1262</a></span> <span class="keyword">const</span> EdgeInfoVector& <a class="code" href="classgraphar_1_1_graph_info.html#a14dbabaec827198ee822070c1077a570">GraphInfo::GetEdgeInfos</a>()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>  <span class="keywordflow">return</span> impl_->edge_infos_;</div>
-<div class="line"><a name="l01264"></a><span class="lineno"> 1264</span> }</div>
-<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>  </div>
-<div class="line"><a name="l01266"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a6e848c7015e3b7d4706ff1ac2ffa6dcd"> 1266</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_graph_info.html#a6e848c7015e3b7d4706ff1ac2ffa6dcd">GraphInfo::IsValidated</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->is_validated(); }</div>
-<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>  </div>
-<div class="line"><a name="l01268"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a44e38c74dc765a56f8f0d200774d8180"> 1268</a></span> Result<std::shared_ptr<GraphInfo>> <a class="code" href="classgraphar_1_1_graph_info.html#a44e38c74dc765a56f8f0d200774d8180">GraphInfo::AddVertex</a>(</div>
-<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>  std::shared_ptr<VertexInfo> vertex_info)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>  <span class="keywordflow">if</span> (vertex_info == <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"vertex info is nullptr"</span>);</div>
-<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>  }</div>
-<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>  <span class="keywordflow">if</span> (<a class="code" href="classgraphar_1_1_graph_info.html#a0f03270a6ee9c084dab10421cdf69cd5">GetVertexInfoIndex</a>(vertex_info->GetType()) != -1) {</div>
-<div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"vertex info already exists"</span>);</div>
-<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>  }</div>
-<div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>  <span class="keywordflow">return</span> std::make_shared<GraphInfo>(</div>
-<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>  impl_->name_, AddVectorElement(impl_->vertex_infos_, vertex_info),</div>
-<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>  impl_->edge_infos_, impl_->labels_, impl_->prefix_, impl_->version_);</div>
-<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span> }</div>
-<div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>  </div>
-<div class="line"><a name="l01281"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a8fdf1ff0ec57e3ca2e66dd4366e390aa"> 1281</a></span> Result<std::shared_ptr<GraphInfo>> <a class="code" href="classgraphar_1_1_graph_info.html#a8fdf1ff0ec57e3ca2e66dd4366e390aa">GraphInfo::AddEdge</a>(</div>
-<div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>  std::shared_ptr<EdgeInfo> edge_info)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>  <span class="keywordflow">if</span> (edge_info == <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"edge info is nullptr"</span>);</div>
-<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>  }</div>
-<div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>  <span class="keywordflow">if</span> (<a class="code" href="classgraphar_1_1_graph_info.html#aa2ca1614d499facc76927b5de733b503">GetEdgeInfoIndex</a>(edge_info->GetSrcType(), edge_info->GetEdgeType(),</div>
-<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>  edge_info->GetDstType()) != -1) {</div>
-<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"edge info already exists"</span>);</div>
-<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>  }</div>
-<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>  <span class="keywordflow">return</span> std::make_shared<GraphInfo>(</div>
-<div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>  impl_->name_, impl_->vertex_infos_,</div>
-<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>  AddVectorElement(impl_->edge_infos_, edge_info), impl_->labels_,</div>
-<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>  impl_->prefix_, impl_->version_);</div>
-<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span> }</div>
-<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>  </div>
-<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span> std::shared_ptr<GraphInfo> CreateGraphInfo(</div>
-<div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>  <span class="keyword">const</span> std::string& name, <span class="keyword">const</span> VertexInfoVector& vertex_infos,</div>
-<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>  <span class="keyword">const</span> EdgeInfoVector& edge_infos, <span class="keyword">const</span> std::vector<std::string>& labels,</div>
-<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>  <span class="keyword">const</span> std::string& prefix, std::shared_ptr<const InfoVersion> version,</div>
-<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>  <span class="keyword">const</span> std::unordered_map<std::string, std::string>& extra_info) {</div>
-<div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>  <span class="keywordflow">if</span> (name.empty()) {</div>
-<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
-<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>  }</div>
-<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>  <span class="keywordflow">return</span> std::make_shared<GraphInfo>(name, vertex_infos, edge_infos, labels,</div>
-<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>  prefix, version, extra_info);</div>
+<div class="line"><a name="l01202"></a><span class="lineno"> 1202</span> } <span class="comment">// namespace</span></div>
+<div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>  </div>
+<div class="line"><a name="l01204"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info_1_1_impl.html"> 1204</a></span> <span class="keyword">class </span><a class="code" href="classgraphar_1_1_graph_info_1_1_impl.html">GraphInfo::Impl</a> {</div>
+<div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>  <a class="code" href="classgraphar_1_1_graph_info_1_1_impl.html">Impl</a>(<span class="keyword">const</span> std::string& graph_name, VertexInfoVector vertex_infos,</div>
+<div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>  EdgeInfoVector edge_infos, <span class="keyword">const</span> std::vector<std::string>& labels,</div>
+<div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>  <span class="keyword">const</span> std::string& prefix, std::shared_ptr<const InfoVersion> <a class="code" href="classgraphar_1_1_graph_info.html#aeb68a7550c63365d8093136601a3aeee">version</a>,</div>
+<div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>  <span class="keyword">const</span> std::unordered_map<std::string, std::string>& extra_info)</div>
+<div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>  : name_(graph_name),</div>
+<div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>  vertex_infos_(std::move(vertex_infos)),</div>
+<div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>  edge_infos_(std::move(edge_infos)),</div>
+<div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>  labels_(labels),</div>
+<div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>  prefix_(prefix),</div>
+<div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>  version_(std::move(<a class="code" href="classgraphar_1_1_graph_info.html#aeb68a7550c63365d8093136601a3aeee">version</a>)),</div>
+<div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>  extra_info_(extra_info) {</div>
+<div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < vertex_infos_.size(); i++) {</div>
+<div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>  <span class="keywordflow">if</span> (vertex_infos_[i] != <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>  vtype_to_index_[vertex_infos_[i]->GetType()] = i;</div>
+<div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>  }</div>
+<div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>  }</div>
+<div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i < edge_infos_.size(); i++) {</div>
+<div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>  <span class="keywordflow">if</span> (edge_infos_[i] != <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>  std::string edge_key = ConcatEdgeTriple(edge_infos_[i]->GetSrcType(),</div>
+<div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>  edge_infos_[i]->GetEdgeType(),</div>
+<div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>  edge_infos_[i]->GetDstType());</div>
+<div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>  etype_to_index_[edge_key] = i;</div>
+<div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>  }</div>
+<div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>  }</div>
+<div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>  }</div>
+<div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>  </div>
+<div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>  <span class="keywordtype">bool</span> is_validated() <span class="keyword">const</span> noexcept {</div>
+<div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>  <span class="keywordflow">if</span> (name_.empty() || prefix_.empty()) {</div>
+<div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>  }</div>
+<div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& v : vertex_infos_) {</div>
+<div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>  <span class="keywordflow">if</span> (!v || !v->IsValidated()) {</div>
+<div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>  }</div>
+<div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>  }</div>
+<div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& e : edge_infos_) {</div>
+<div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>  <span class="keywordflow">if</span> (!e || !e->IsValidated()) {</div>
+<div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>  }</div>
+<div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>  }</div>
+<div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>  <span class="keywordflow">if</span> (vertex_infos_.size() != vtype_to_index_.size() ||</div>
+<div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>  edge_infos_.size() != etype_to_index_.size()) {</div>
+<div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>  <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
+<div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>  }</div>
+<div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>  <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
+<div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>  }</div>
+<div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>  </div>
+<div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>  std::string name_;</div>
+<div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>  VertexInfoVector vertex_infos_;</div>
+<div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>  EdgeInfoVector edge_infos_;</div>
+<div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>  std::vector<std::string> labels_;</div>
+<div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>  std::string prefix_;</div>
+<div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>  std::shared_ptr<const InfoVersion> version_;</div>
+<div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>  std::unordered_map<std::string, std::string> extra_info_;</div>
+<div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>  std::unordered_map<std::string, int> vtype_to_index_;</div>
+<div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>  std::unordered_map<std::string, int> etype_to_index_;</div>
+<div class="line"><a name="l01262"></a><span class="lineno"> 1262</span> };</div>
+<div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>  </div>
+<div class="line"><a name="l01264"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a1b473deea923f7b2a57c339dc7e51192"> 1264</a></span> <a class="code" href="classgraphar_1_1_graph_info.html#a1b473deea923f7b2a57c339dc7e51192">GraphInfo::GraphInfo</a>(</div>
+<div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>  <span class="keyword">const</span> std::string& graph_name, VertexInfoVector vertex_infos,</div>
+<div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>  EdgeInfoVector edge_infos, <span class="keyword">const</span> std::vector<std::string>& labels,</div>
+<div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>  <span class="keyword">const</span> std::string& prefix, std::shared_ptr<const InfoVersion> version,</div>
+<div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>  <span class="keyword">const</span> std::unordered_map<std::string, std::string>& extra_info)</div>
+<div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>  : impl_(new <a class="code" href="classgraphar_1_1_graph_info_1_1_impl.html">Impl</a>(graph_name, std::move(vertex_infos), std::move(edge_infos),</div>
+<div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>  labels, prefix, version, extra_info)) {}</div>
+<div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>  </div>
+<div class="line"><a name="l01272"></a><span class="lineno"> 1272</span> GraphInfo::~GraphInfo() = <span class="keywordflow">default</span>;</div>
+<div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>  </div>
+<div class="line"><a name="l01274"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#ab10cb1ceaa01a74d44c1076c43c2fcce"> 1274</a></span> <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_graph_info.html#ab10cb1ceaa01a74d44c1076c43c2fcce">GraphInfo::GetName</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->name_; }</div>
+<div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>  </div>
+<div class="line"><a name="l01276"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a8b057bb6c3cfd897b0fb31ecceea40c9"> 1276</a></span> <span class="keyword">const</span> std::vector<std::string>& <a class="code" href="classgraphar_1_1_graph_info.html#a8b057bb6c3cfd897b0fb31ecceea40c9">GraphInfo::GetLabels</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>  <span class="keywordflow">return</span> impl_->labels_;</div>
+<div class="line"><a name="l01278"></a><span class="lineno"> 1278</span> }</div>
+<div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>  </div>
+<div class="line"><a name="l01280"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a53eef3d15830bea15de0bbbe7e11e208"> 1280</a></span> <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_graph_info.html#a53eef3d15830bea15de0bbbe7e11e208">GraphInfo::GetPrefix</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->prefix_; }</div>
+<div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>  </div>
+<div class="line"><a name="l01282"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#aeb68a7550c63365d8093136601a3aeee"> 1282</a></span> <span class="keyword">const</span> std::shared_ptr<const InfoVersion>& <a class="code" href="classgraphar_1_1_graph_info.html#aeb68a7550c63365d8093136601a3aeee">GraphInfo::version</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>  <span class="keywordflow">return</span> impl_->version_;</div>
+<div class="line"><a name="l01284"></a><span class="lineno"> 1284</span> }</div>
+<div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>  </div>
+<div class="line"><a name="l01286"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#aa0856ec7ecc8d8d1aac2f7cd51cfe136"> 1286</a></span> <span class="keyword">const</span> std::unordered_map<std::string, std::string>& <a class="code" href="classgraphar_1_1_graph_info.html#aa0856ec7ecc8d8d1aac2f7cd51cfe136">GraphInfo::GetExtraInfo</a>()<span class="keyword"></span></div>
+<div class="line"><a name="l01287"></a><span class="lineno"> 1287</span> <span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>  <span class="keywordflow">return</span> impl_->extra_info_;</div>
+<div class="line"><a name="l01289"></a><span class="lineno"> 1289</span> }</div>
+<div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>  </div>
+<div class="line"><a name="l01291"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a8799b4b1a2163507a9ddd8f910d4a9d3"> 1291</a></span> std::shared_ptr<VertexInfo> <a class="code" href="classgraphar_1_1_graph_info.html#a8799b4b1a2163507a9ddd8f910d4a9d3">GraphInfo::GetVertexInfo</a>(</div>
+<div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>  <span class="keyword">const</span> std::string& type)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>  <span class="keywordtype">int</span> i = <a class="code" href="classgraphar_1_1_graph_info.html#a0f03270a6ee9c084dab10421cdf69cd5">GetVertexInfoIndex</a>(type);</div>
+<div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>  <span class="keywordflow">return</span> i == -1 ? nullptr : impl_->vertex_infos_[i];</div>
+<div class="line"><a name="l01295"></a><span class="lineno"> 1295</span> }</div>
+<div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>  </div>
+<div class="line"><a name="l01297"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a0f03270a6ee9c084dab10421cdf69cd5"> 1297</a></span> <span class="keywordtype">int</span> <a class="code" href="classgraphar_1_1_graph_info.html#a0f03270a6ee9c084dab10421cdf69cd5">GraphInfo::GetVertexInfoIndex</a>(<span class="keyword">const</span> std::string& type)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>  <span class="keywordflow">return</span> LookupKeyIndex(impl_->vtype_to_index_, type);</div>
+<div class="line"><a name="l01299"></a><span class="lineno"> 1299</span> }</div>
+<div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>  </div>
+<div class="line"><a name="l01301"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a7e660710d2e1bd244b5d28bdc68aeab2"> 1301</a></span> std::shared_ptr<EdgeInfo> <a class="code" href="classgraphar_1_1_graph_info.html#a7e660710d2e1bd244b5d28bdc68aeab2">GraphInfo::GetEdgeInfo</a>(</div>
+<div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>  <span class="keyword">const</span> std::string& src_type, <span class="keyword">const</span> std::string& edge_type,</div>
+<div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>  <span class="keyword">const</span> std::string& dst_type)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>  <span class="keywordtype">int</span> i = <a class="code" href="classgraphar_1_1_graph_info.html#aa2ca1614d499facc76927b5de733b503">GetEdgeInfoIndex</a>(src_type, edge_type, dst_type);</div>
+<div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>  <span class="keywordflow">return</span> i == -1 ? nullptr : impl_->edge_infos_[i];</div>
<div class="line"><a name="l01306"></a><span class="lineno"> 1306</span> }</div>
<div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>  </div>
-<div class="line"><a name="l01308"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a63dbd61d6575fe783b3287f391f651ed"> 1308</a></span> Result<std::shared_ptr<GraphInfo>> <a class="code" href="classgraphar_1_1_graph_info.html#a63dbd61d6575fe783b3287f391f651ed">GraphInfo::Load</a>(<span class="keyword">const</span> std::string& path) {</div>
-<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>  std::string no_url_path;</div>
-<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> fs, FileSystemFromUriOrPath(path, &no_url_path));</div>
-<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> yaml_content,</div>
-<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>  fs->ReadFileToValue<std::string>(no_url_path));</div>
-<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> graph_meta, <a class="code" href="classgraphar_1_1_yaml.html#a2fff6ba5eaf3e59b489d015f10013179">Yaml::Load</a>(yaml_content));</div>
-<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>  std::string default_name = <span class="stringliteral">"graph"</span>;</div>
-<div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>  std::string default_prefix = PathToDirectory(path);</div>
-<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>  no_url_path = PathToDirectory(no_url_path);</div>
-<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>  <span class="keywordflow">return</span> ConstructGraphInfo(graph_meta, default_name, default_prefix, fs,</div>
-<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>  no_url_path);</div>
-<div class="line"><a name="l01319"></a><span class="lineno"> 1319</span> }</div>
-<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>  </div>
-<div class="line"><a name="l01321"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#acf6ef4ce04b70184f596be59dbb58318"> 1321</a></span> Result<std::shared_ptr<GraphInfo>> <a class="code" href="classgraphar_1_1_graph_info.html#a63dbd61d6575fe783b3287f391f651ed">GraphInfo::Load</a>(</div>
-<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>  <span class="keyword">const</span> std::string& input, <span class="keyword">const</span> std::string& relative_location) {</div>
-<div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> graph_meta, <a class="code" href="classgraphar_1_1_yaml.html#a2fff6ba5eaf3e59b489d015f10013179">Yaml::Load</a>(input));</div>
-<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>  std::string default_name = <span class="stringliteral">"graph"</span>;</div>
-<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>  std::string default_prefix =</div>
-<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>  relative_location; <span class="comment">// default chunk file prefix is relative location</span></div>
-<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>  std::string no_url_path;</div>
-<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> fs,</div>
-<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>  FileSystemFromUriOrPath(relative_location, &no_url_path));</div>
-<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>  <span class="keywordflow">return</span> ConstructGraphInfo(graph_meta, default_name, default_prefix, fs,</div>
-<div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>  no_url_path);</div>
-<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span> }</div>
-<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>  </div>
-<div class="line"><a name="l01334"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a71646413e64620af1ca83f404e7150ea"> 1334</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_graph_info.html#a71646413e64620af1ca83f404e7150ea">GraphInfo::Dump</a>()<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>  <span class="keywordflow">if</span> (!<a class="code" href="classgraphar_1_1_graph_info.html#a6e848c7015e3b7d4706ff1ac2ffa6dcd">IsValidated</a>()) {</div>
-<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"The graph info is not validated."</span>);</div>
-<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>  }</div>
-<div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>  ::Yaml::Node node;</div>
-<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>  std::string dump_string;</div>
-<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>  <span class="keywordflow">try</span> {</div>
-<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>  node[<span class="stringliteral">"name"</span>] = impl_->name_;</div>
-<div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>  node[<span class="stringliteral">"prefix"</span>] = impl_->prefix_;</div>
-<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>  node[<span class="stringliteral">"vertices"</span>];</div>
-<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>  node[<span class="stringliteral">"edges"</span>];</div>
-<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& vertex : <a class="code" href="classgraphar_1_1_graph_info.html#a9393d2797ff5d77f66691f84f15007c4">GetVertexInfos</a>()) {</div>
-<div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>  node[<span class="stringliteral">"vertices"</span>].PushBack();</div>
-<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>  node[<span class="stringliteral">"vertices"</span>][node[<span class="stringliteral">"vertices"</span>].Size() - 1] =</div>
-<div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>  vertex->GetType() + <span class="stringliteral">".vertex.yaml"</span>;</div>
-<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>  }</div>
-<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& edge : <a class="code" href="classgraphar_1_1_graph_info.html#a14dbabaec827198ee822070c1077a570">GetEdgeInfos</a>()) {</div>
-<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>  node[<span class="stringliteral">"edges"</span>].PushBack();</div>
-<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>  node[<span class="stringliteral">"edges"</span>][node[<span class="stringliteral">"edges"</span>].Size() - 1] =</div>
-<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>  ConcatEdgeTriple(edge->GetSrcType(), edge->GetEdgeType(),</div>
-<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>  edge->GetDstType()) +</div>
-<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>  <span class="stringliteral">".edge.yaml"</span>;</div>
-<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>  }</div>
-<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>  <span class="keywordflow">if</span> (impl_->labels_.size() > 0) {</div>
-<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>  node[<span class="stringliteral">"labels"</span>];</div>
-<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& label : impl_->labels_) {</div>
-<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>  node[<span class="stringliteral">"labels"</span>].PushBack();</div>
-<div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>  node[<span class="stringliteral">"labels"</span>][node[<span class="stringliteral">"labels"</span>].Size() - 1] = label;</div>
-<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>  }</div>
-<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>  }</div>
-<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>  <span class="keywordflow">if</span> (impl_->version_ != <span class="keyword">nullptr</span>) {</div>
-<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>  node[<span class="stringliteral">"version"</span>] = impl_->version_->ToString();</div>
-<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>  }</div>
-<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>  <span class="keywordflow">if</span> (impl_->extra_info_.size() > 0) {</div>
-<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>  node[<span class="stringliteral">"extra_info"</span>];</div>
-<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& pair : impl_->extra_info_) {</div>
-<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>  ::Yaml::Node extra_info_node;</div>
-<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>  extra_info_node[<span class="stringliteral">"key"</span>] = pair.first;</div>
-<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>  extra_info_node[<span class="stringliteral">"value"</span>] = pair.second;</div>
-<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>  node[<span class="stringliteral">"extra_info"</span>].PushBack();</div>
-<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>  node[<span class="stringliteral">"extra_info"</span>][node[<span class="stringliteral">"extra_info"</span>].Size() - 1] = extra_info_node;</div>
-<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>  }</div>
-<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>  }</div>
-<div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>  ::Yaml::Serialize(node, dump_string);</div>
-<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>  } <span class="keywordflow">catch</span> (<span class="keyword">const</span> std::exception& e) {</div>
-<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"Failed to dump graph info: "</span>, e.what());</div>
-<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>  }</div>
-<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>  <span class="keywordflow">return</span> dump_string;</div>
-<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span> }</div>
-<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>  </div>
-<div class="line"><a name="l01384"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a339f08f5a1427aadc91d30d41dccced3"> 1384</a></span> <a class="code" href="classgraphar_1_1_status.html">Status</a> <a class="code" href="classgraphar_1_1_graph_info.html#a339f08f5a1427aadc91d30d41dccced3">GraphInfo::Save</a>(<span class="keyword">const</span> std::string& path)<span class="keyword"> const </span>{</div>
-<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>  std::string no_url_path;</div>
-<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> fs, FileSystemFromUriOrPath(path, &no_url_path));</div>
-<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> yaml_content, this-><a class="code" href="classgraphar_1_1_graph_info.html#a71646413e64620af1ca83f404e7150ea">Dump</a>());</div>
-<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>  <span class="keywordflow">return</span> fs->WriteValueToFile(yaml_content, no_url_path);</div>
-<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span> }</div>
-<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>  </div>
-<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span> } <span class="comment">// namespace graphar</span></div>
-<div class="ttc" id="aclassgraphar_1_1_adjacent_list_html_a592ba95843997b321f5545e950f03a57"><div class="ttname"><a href="classgraphar_1_1_adjacent_list.html#a592ba95843997b321f5545e950f03a57">graphar::AdjacentList::IsValidated</a></div><div class="ttdeci">bool IsValidated() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00176">graph_info.cc:176</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_adjacent_list_html_ab31cbdbaae74305f7bf3ffbd76c93efc"><div class="ttname"><a href="classgraphar_1_1_adjacent_list.html#ab31cbdbaae74305f7bf3ffbd76c93efc">graphar::AdjacentList::AdjacentList</a></div><div class="ttdeci">AdjacentList(AdjListType type, FileType file_type, const std::string &prefix="")</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00168">graph_info.cc:168</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_1_1_impl_html"><div class="ttname"><a href="classgraphar_1_1_edge_info_1_1_impl.html">graphar::EdgeInfo::Impl</a></div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00537">graph_info.cc:537</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a03c9b4f4b0edcf47f2e5746e8f9f6db0"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a03c9b4f4b0edcf47f2e5746e8f9f6db0">graphar::EdgeInfo::GetEdgeType</a></div><div class="ttdeci">const std::string & GetEdgeType() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00658">graph_info.cc:658</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a0ac67e1cf3b3fa79b6fcbc054869d0e5"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a0ac67e1cf3b3fa79b6fcbc054869d0e5">graphar::EdgeInfo::Load</a></div><div class="ttdeci">static Result< std::shared_ptr< EdgeInfo > > Load(std::shared_ptr< Yaml > yaml)</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00886">graph_info.cc:886</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a0eb9f0ff282c73f5c90a8c3940f1929e"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a0eb9f0ff282c73f5c90a8c3940f1929e">graphar::EdgeInfo::GetAdjListFilePath</a></div><div class="ttdeci">Result< std::string > GetAdjListFilePath(IdType vertex_chunk_index, IdType edge_chunk_index, AdjListType adj_list_type) const</div><div class="ttdoc">Get the file path of adj list topology chunk.</div><div class="ttdef"><b>Definition: [...]
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a1e95f986bd8c5191f438705b195191e3"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a1e95f986bd8c5191f438705b195191e3">graphar::EdgeInfo::Save</a></div><div class="ttdeci">Status Save(const std::string &file_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01027">graph_info.cc:1027</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a37fa8536c627a5e5f529e8ee6d3d7506"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a37fa8536c627a5e5f529e8ee6d3d7506">graphar::EdgeInfo::GetPropertyType</a></div><div class="ttdeci">Result< std::shared_ptr< DataType > > GetPropertyType(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00807">graph_info.cc:807</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a3dca57726506375cab4fc43fdef2914f"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a3dca57726506375cab4fc43fdef2914f">graphar::EdgeInfo::IsValidated</a></div><div class="ttdeci">bool IsValidated() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00867">graph_info.cc:867</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a4ec8810a54411f9a8aba35b2faf29acb"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a4ec8810a54411f9a8aba35b2faf29acb">graphar::EdgeInfo::GetPrefix</a></div><div class="ttdeci">const std::string & GetPrefix() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00668">graph_info.cc:668</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a4f2c7fedc68dce8f1c7fb90eede9906f"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a4f2c7fedc68dce8f1c7fb90eede9906f">graphar::EdgeInfo::GetEdgesNumFilePath</a></div><div class="ttdeci">Result< std::string > GetEdgesNumFilePath(IdType vertex_chunk_index, AdjListType adj_list_type) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00738">graph_info.cc:738</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a55004cedc30fcb0fa94adf246dcc2702"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a55004cedc30fcb0fa94adf246dcc2702">graphar::EdgeInfo::GetPropertyGroupPathPrefix</a></div><div class="ttdeci">Result< std::string > GetPropertyGroupPathPrefix(const std::shared_ptr< PropertyGroup > &property_group, AdjListType adj_list_type) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.htm [...]
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a5bd430ba21f5dfb230b978e03c4020ef"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a5bd430ba21f5dfb230b978e03c4020ef">graphar::EdgeInfo::IsPrimaryKey</a></div><div class="ttdeci">bool IsPrimaryKey(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00816">graph_info.cc:816</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a615fe3ed78f35af9aef598287cb89a27"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a615fe3ed78f35af9aef598287cb89a27">graphar::EdgeInfo::GetAdjListOffsetFilePath</a></div><div class="ttdeci">Result< std::string > GetAdjListOffsetFilePath(IdType vertex_chunk_index, AdjListType adj_list_type) const</div><div class="ttdoc">Get the adjacency list offset chunk file path of vertex chunk the offset chunks is aligned with t [...]
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a62c2300185c0655df9b44db39b0a399b"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a62c2300185c0655df9b44db39b0a399b">graphar::EdgeInfo::GetChunkSize</a></div><div class="ttdeci">IdType GetChunkSize() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00662">graph_info.cc:662</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a69182fa8d45bb0e7d4ac230adb1239b2"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a69182fa8d45bb0e7d4ac230adb1239b2">graphar::EdgeInfo::HasProperty</a></div><div class="ttdeci">bool HasProperty(const std::string &property_name) const</div><div class="ttdoc">Returns whether the edge info contains the given property.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00681">graph_info.cc:6 [...]
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a6e5b4fdc98d8399564396fb63955c62a"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a6e5b4fdc98d8399564396fb63955c62a">graphar::EdgeInfo::AddAdjacentList</a></div><div class="ttdeci">Result< std::shared_ptr< EdgeInfo > > AddAdjacentList(std::shared_ptr< AdjacentList > adj_list) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00832">graph_info.cc:832</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a80004230ddfbc892995732ea59993a27"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a80004230ddfbc892995732ea59993a27">graphar::EdgeInfo::Dump</a></div><div class="ttdeci">Result< std::string > Dump() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00972">graph_info.cc:972</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a80b00d930f22870d00331a639c9cc26e"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a80b00d930f22870d00331a639c9cc26e">graphar::EdgeInfo::IsNullableKey</a></div><div class="ttdeci">bool IsNullableKey(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00824">graph_info.cc:824</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a8551959066b19885b9ce15262b5cb3db"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a8551959066b19885b9ce15262b5cb3db">graphar::EdgeInfo::GetPropertyGroupByIndex</a></div><div class="ttdeci">std::shared_ptr< PropertyGroup > GetPropertyGroupByIndex(int index) const</div><div class="ttdoc">Get the property group at the specified index.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l007 [...]
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a857bb686e5d7f579ac0e2a889a53f829"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a857bb686e5d7f579ac0e2a889a53f829">graphar::EdgeInfo::HasPropertyGroup</a></div><div class="ttdeci">bool HasPropertyGroup(const std::shared_ptr< PropertyGroup > &property_group) const</div><div class="ttdoc">Returns whether the edge info contains the given property group.</div><div class="ttdef"><b>Definition:</b> <a href="graph__ [...]
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a9440bef05f4fa689662f26a9ef0117c1"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a9440bef05f4fa689662f26a9ef0117c1">graphar::EdgeInfo::version</a></div><div class="ttdeci">const std::shared_ptr< const InfoVersion > & version() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00672">graph_info.cc:672</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a9620f838addfdcb892b30e80e2cc4239"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a9620f838addfdcb892b30e80e2cc4239">graphar::EdgeInfo::AddPropertyGroup</a></div><div class="ttdeci">Result< std::shared_ptr< EdgeInfo > > AddPropertyGroup(std::shared_ptr< PropertyGroup > property_group) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00848">graph_info.cc:848</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a994023f50f2f952cc1361b0f9928dec4"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a994023f50f2f952cc1361b0f9928dec4">graphar::EdgeInfo::GetSrcType</a></div><div class="ttdeci">const std::string & GetSrcType() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00656">graph_info.cc:656</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_aaa6633dc8136cec806cbcf42c2cf136d"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#aaa6633dc8136cec806cbcf42c2cf136d">graphar::EdgeInfo::HasAdjacentListType</a></div><div class="ttdeci">bool HasAdjacentListType(AdjListType adj_list_type) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00676">graph_info.cc:676</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_aab2032669c9e9dcf11275fdd4cb2c1fa"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#aab2032669c9e9dcf11275fdd4cb2c1fa">graphar::EdgeInfo::GetOffsetPathPrefix</a></div><div class="ttdeci">Result< std::string > GetOffsetPathPrefix(AdjListType adj_list_type) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00772">graph_info.cc:772</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_aad31af465d41c026a35c20828915922e"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#aad31af465d41c026a35c20828915922e">graphar::EdgeInfo::IsDirected</a></div><div class="ttdeci">bool IsDirected() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00670">graph_info.cc:670</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_ab39f63f0aa7284c510a7e0d61b0942d3"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#ab39f63f0aa7284c510a7e0d61b0942d3">graphar::EdgeInfo::GetAdjListPathPrefix</a></div><div class="ttdeci">Result< std::string > GetAdjListPathPrefix(AdjListType adj_list_type) const</div><div class="ttdoc">Get the path prefix of the adjacency list topology chunk for the given adjacency list type.</div><div class="ttdef"><b>Definition:</ [...]
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_ab3c32f3112dcf08304676eeb95545b55"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#ab3c32f3112dcf08304676eeb95545b55">graphar::EdgeInfo::EdgeInfo</a></div><div class="ttdeci">EdgeInfo(const std::string &src_type, const std::string &edge_type, const std::string &dst_type, IdType chunk_size, IdType src_chunk_size, IdType dst_chunk_size, bool directed, const AdjacentListVector &adjacent_lists, const PropertyG [...]
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_abe0fc6672a3fbb5fbd0b5e8775cb8dac"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#abe0fc6672a3fbb5fbd0b5e8775cb8dac">graphar::EdgeInfo::GetDstChunkSize</a></div><div class="ttdeci">IdType GetDstChunkSize() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00666">graph_info.cc:666</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_abfcba5aed61cdfaf91f98e649b370722"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#abfcba5aed61cdfaf91f98e649b370722">graphar::EdgeInfo::GetPropertyFilePath</a></div><div class="ttdeci">Result< std::string > GetPropertyFilePath(const std::shared_ptr< PropertyGroup > &property_group, AdjListType adj_list_type, IdType vertex_chunk_index, IdType edge_chunk_index) const</div><div class="ttdoc">Get the chunk fi [...]
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_ac03180737adf29c79196bbe729b3c929"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#ac03180737adf29c79196bbe729b3c929">graphar::EdgeInfo::GetDstType</a></div><div class="ttdeci">const std::string & GetDstType() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00660">graph_info.cc:660</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_ac07ad975e8ecbdb779038388e3def59e"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#ac07ad975e8ecbdb779038388e3def59e">graphar::EdgeInfo::GetSrcChunkSize</a></div><div class="ttdeci">IdType GetSrcChunkSize() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00664">graph_info.cc:664</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_ad56107001dcbadac71ae8063cd25b58f"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#ad56107001dcbadac71ae8063cd25b58f">graphar::EdgeInfo::GetPropertyGroups</a></div><div class="ttdeci">const PropertyGroupVector & GetPropertyGroups() const</div><div class="ttdoc">Get the property groups.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00712">graph_info.cc:712</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_aec1a622c83b14d62b26e7143850a3cf1"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#aec1a622c83b14d62b26e7143850a3cf1">graphar::EdgeInfo::GetVerticesNumFilePath</a></div><div class="ttdeci">Result< std::string > GetVerticesNumFilePath(AdjListType adj_list_type) const</div><div class="ttdoc">Get the file path for the number of vertices.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l0 [...]
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_aec1bdf018d5b209f722dbf293ef14dd6"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#aec1bdf018d5b209f722dbf293ef14dd6">graphar::EdgeInfo::GetPropertyGroup</a></div><div class="ttdeci">std::shared_ptr< PropertyGroup > GetPropertyGroup(const std::string &property) const</div><div class="ttdoc">Get the property group containing the given property.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_s [...]
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_aee914f2c4adf773c048daed0e93dbe32"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#aee914f2c4adf773c048daed0e93dbe32">graphar::EdgeInfo::PropertyGroupNum</a></div><div class="ttdeci">int PropertyGroupNum() const</div><div class="ttdoc">Get the number of property groups.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00708">graph_info.cc:708</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_graph_info_1_1_impl_html"><div class="ttname"><a href="classgraphar_1_1_graph_info_1_1_impl.html">graphar::GraphInfo::Impl</a></div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01124">graph_info.cc:1124</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a0f03270a6ee9c084dab10421cdf69cd5"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a0f03270a6ee9c084dab10421cdf69cd5">graphar::GraphInfo::GetVertexInfoIndex</a></div><div class="ttdeci">int GetVertexInfoIndex(const std::string &type) const</div><div class="ttdoc">Get the vertex info index with the given type.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01217">graph_info.cc:1217</ [...]
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a14dbabaec827198ee822070c1077a570"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a14dbabaec827198ee822070c1077a570">graphar::GraphInfo::GetEdgeInfos</a></div><div class="ttdeci">const EdgeInfoVector & GetEdgeInfos() const</div><div class="ttdoc">Get the edge infos of graph info.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01262">graph_info.cc:1262</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a1b473deea923f7b2a57c339dc7e51192"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a1b473deea923f7b2a57c339dc7e51192">graphar::GraphInfo::GraphInfo</a></div><div class="ttdeci">GraphInfo(const std::string &graph_name, VertexInfoVector vertex_infos, EdgeInfoVector edge_infos, const std::vector< std::string > &labels={}, const std::string &prefix="./", std::shared_ptr< const InfoVersion > [...]
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a339f08f5a1427aadc91d30d41dccced3"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a339f08f5a1427aadc91d30d41dccced3">graphar::GraphInfo::Save</a></div><div class="ttdeci">Status Save(const std::string &path) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01384">graph_info.cc:1384</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a3a94e3d0f64a1b4d1b672676940c389f"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a3a94e3d0f64a1b4d1b672676940c389f">graphar::GraphInfo::GetVertexInfoByIndex</a></div><div class="ttdeci">const std::shared_ptr< VertexInfo > GetVertexInfoByIndex(int index) const</div><div class="ttdoc">Get the vertex info at the specified index.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01243" [...]
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a44e38c74dc765a56f8f0d200774d8180"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a44e38c74dc765a56f8f0d200774d8180">graphar::GraphInfo::AddVertex</a></div><div class="ttdeci">Result< std::shared_ptr< GraphInfo > > AddVertex(std::shared_ptr< VertexInfo > vertex_info) const</div><div class="ttdoc">Adds a vertex info to the GraphInfo instance and returns a new GraphInfo.</div><div class="ttdef"><b>Defin [...]
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a53eef3d15830bea15de0bbbe7e11e208"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a53eef3d15830bea15de0bbbe7e11e208">graphar::GraphInfo::GetPrefix</a></div><div class="ttdeci">const std::string & GetPrefix() const</div><div class="ttdoc">Get the absolute path prefix of the chunk files.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01200">graph_info.cc:1200</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a63dbd61d6575fe783b3287f391f651ed"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a63dbd61d6575fe783b3287f391f651ed">graphar::GraphInfo::Load</a></div><div class="ttdeci">static Result< std::shared_ptr< GraphInfo > > Load(const std::string &path)</div><div class="ttdoc">Loads the input file as a GraphInfo instance.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01308">g [...]
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a6e848c7015e3b7d4706ff1ac2ffa6dcd"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a6e848c7015e3b7d4706ff1ac2ffa6dcd">graphar::GraphInfo::IsValidated</a></div><div class="ttdeci">bool IsValidated() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01266">graph_info.cc:1266</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a71646413e64620af1ca83f404e7150ea"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a71646413e64620af1ca83f404e7150ea">graphar::GraphInfo::Dump</a></div><div class="ttdeci">Result< std::string > Dump() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01334">graph_info.cc:1334</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a7e660710d2e1bd244b5d28bdc68aeab2"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a7e660710d2e1bd244b5d28bdc68aeab2">graphar::GraphInfo::GetEdgeInfo</a></div><div class="ttdeci">std::shared_ptr< EdgeInfo > GetEdgeInfo(const std::string &src_type, const std::string &edge_type, const std::string &dst_type) const</div><div class="ttdoc">Get the edge info with the given source vertex type, edge type, and [...]
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a814f2cdeecf58a308ab886a085991fc4"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a814f2cdeecf58a308ab886a085991fc4">graphar::GraphInfo::EdgeInfoNum</a></div><div class="ttdeci">int EdgeInfoNum() const</div><div class="ttdoc">Get the number of edge infos.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01239">graph_info.cc:1239</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a8799b4b1a2163507a9ddd8f910d4a9d3"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a8799b4b1a2163507a9ddd8f910d4a9d3">graphar::GraphInfo::GetVertexInfo</a></div><div class="ttdeci">std::shared_ptr< VertexInfo > GetVertexInfo(const std::string &type) const</div><div class="ttdoc">Get the vertex info with the given type.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01211">grap [...]
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a8b057bb6c3cfd897b0fb31ecceea40c9"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a8b057bb6c3cfd897b0fb31ecceea40c9">graphar::GraphInfo::GetLabels</a></div><div class="ttdeci">const std::vector< std::string > & GetLabels() const</div><div class="ttdoc">Get the vertex labels of the graph.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01196">graph_info.cc:1196</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a8fdf1ff0ec57e3ca2e66dd4366e390aa"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a8fdf1ff0ec57e3ca2e66dd4366e390aa">graphar::GraphInfo::AddEdge</a></div><div class="ttdeci">Result< std::shared_ptr< GraphInfo > > AddEdge(std::shared_ptr< EdgeInfo > edge_info) const</div><div class="ttdoc">Adds an edge info to the GraphInfo instance and returns a new GraphInfo.</div><div class="ttdef"><b>Definition:</b [...]
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a9393d2797ff5d77f66691f84f15007c4"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a9393d2797ff5d77f66691f84f15007c4">graphar::GraphInfo::GetVertexInfos</a></div><div class="ttdeci">const VertexInfoVector & GetVertexInfos() const</div><div class="ttdoc">Get the vertex infos of graph info.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01258">graph_info.cc:1258</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_aa0856ec7ecc8d8d1aac2f7cd51cfe136"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#aa0856ec7ecc8d8d1aac2f7cd51cfe136">graphar::GraphInfo::GetExtraInfo</a></div><div class="ttdeci">const std::unordered_map< std::string, std::string > & GetExtraInfo() const</div><div class="ttdoc">Get the extra metadata of the graph info object.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l012 [...]
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_aa2ca1614d499facc76927b5de733b503"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#aa2ca1614d499facc76927b5de733b503">graphar::GraphInfo::GetEdgeInfoIndex</a></div><div class="ttdeci">int GetEdgeInfoIndex(const std::string &src_type, const std::string &edge_type, const std::string &dst_type) const</div><div class="ttdoc">Get the edge info index with the given source vertex type, edge type, and destination ty [...]
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_aa384328a58c9138b5b77ea6172199d07"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#aa384328a58c9138b5b77ea6172199d07">graphar::GraphInfo::VertexInfoNum</a></div><div class="ttdeci">int VertexInfoNum() const</div><div class="ttdoc">Get the number of vertex infos.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01235">graph_info.cc:1235</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_ab10cb1ceaa01a74d44c1076c43c2fcce"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#ab10cb1ceaa01a74d44c1076c43c2fcce">graphar::GraphInfo::GetName</a></div><div class="ttdeci">const std::string & GetName() const</div><div class="ttdoc">Get the name of the graph.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01194">graph_info.cc:1194</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_aeb68a7550c63365d8093136601a3aeee"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#aeb68a7550c63365d8093136601a3aeee">graphar::GraphInfo::version</a></div><div class="ttdeci">const std::shared_ptr< const InfoVersion > & version() const</div><div class="ttdoc">Get the version info of the graph info object.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01202">graph_info.cc:1202 [...]
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_afd61923bd9ff1f5329b1c93ebbcd0278"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#afd61923bd9ff1f5329b1c93ebbcd0278">graphar::GraphInfo::GetEdgeInfoByIndex</a></div><div class="ttdeci">const std::shared_ptr< EdgeInfo > GetEdgeInfoByIndex(int index) const</div><div class="ttdoc">Get the edge info at the specified index.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01251">graph_i [...]
+<div class="line"><a name="l01308"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#aa2ca1614d499facc76927b5de733b503"> 1308</a></span> <span class="keywordtype">int</span> <a class="code" href="classgraphar_1_1_graph_info.html#aa2ca1614d499facc76927b5de733b503">GraphInfo::GetEdgeInfoIndex</a>(<span class="keyword">const</span> std::string& src_type,</div>
+<div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>  <span class="keyword">const</span> std::string& edge_type,</div>
+<div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>  <span class="keyword">const</span> std::string& dst_type)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>  std::string edge_key = ConcatEdgeTriple(src_type, edge_type, dst_type);</div>
+<div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>  <span class="keywordflow">return</span> LookupKeyIndex(impl_->etype_to_index_, edge_key);</div>
+<div class="line"><a name="l01313"></a><span class="lineno"> 1313</span> }</div>
+<div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>  </div>
+<div class="line"><a name="l01315"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#aa384328a58c9138b5b77ea6172199d07"> 1315</a></span> <span class="keywordtype">int</span> <a class="code" href="classgraphar_1_1_graph_info.html#aa384328a58c9138b5b77ea6172199d07">GraphInfo::VertexInfoNum</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(impl_->vertex_infos_.size());</div>
+<div class="line"><a name="l01317"></a><span class="lineno"> 1317</span> }</div>
+<div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>  </div>
+<div class="line"><a name="l01319"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a814f2cdeecf58a308ab886a085991fc4"> 1319</a></span> <span class="keywordtype">int</span> <a class="code" href="classgraphar_1_1_graph_info.html#a814f2cdeecf58a308ab886a085991fc4">GraphInfo::EdgeInfoNum</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>  <span class="keywordflow">return</span> <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(impl_->edge_infos_.size());</div>
+<div class="line"><a name="l01321"></a><span class="lineno"> 1321</span> }</div>
+<div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>  </div>
+<div class="line"><a name="l01323"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a3a94e3d0f64a1b4d1b672676940c389f"> 1323</a></span> <span class="keyword">const</span> std::shared_ptr<VertexInfo> <a class="code" href="classgraphar_1_1_graph_info.html#a3a94e3d0f64a1b4d1b672676940c389f">GraphInfo::GetVertexInfoByIndex</a>(</div>
+<div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>  <span class="keywordtype">int</span> index)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>  <span class="keywordflow">if</span> (index < 0 || index >= <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(impl_->vertex_infos_.size())) {</div>
+<div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>  }</div>
+<div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>  <span class="keywordflow">return</span> impl_->vertex_infos_[index];</div>
+<div class="line"><a name="l01329"></a><span class="lineno"> 1329</span> }</div>
+<div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>  </div>
+<div class="line"><a name="l01331"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#afd61923bd9ff1f5329b1c93ebbcd0278"> 1331</a></span> <span class="keyword">const</span> std::shared_ptr<EdgeInfo> <a class="code" href="classgraphar_1_1_graph_info.html#afd61923bd9ff1f5329b1c93ebbcd0278">GraphInfo::GetEdgeInfoByIndex</a>(<span class="keywordtype">int</span> index)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>  <span class="keywordflow">if</span> (index < 0 || index >= <span class="keyword">static_cast<</span><span class="keywordtype">int</span><span class="keyword">></span>(impl_->edge_infos_.size())) {</div>
+<div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>  }</div>
+<div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>  <span class="keywordflow">return</span> impl_->edge_infos_[index];</div>
+<div class="line"><a name="l01336"></a><span class="lineno"> 1336</span> }</div>
+<div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>  </div>
+<div class="line"><a name="l01338"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a9393d2797ff5d77f66691f84f15007c4"> 1338</a></span> <span class="keyword">const</span> VertexInfoVector& <a class="code" href="classgraphar_1_1_graph_info.html#a9393d2797ff5d77f66691f84f15007c4">GraphInfo::GetVertexInfos</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>  <span class="keywordflow">return</span> impl_->vertex_infos_;</div>
+<div class="line"><a name="l01340"></a><span class="lineno"> 1340</span> }</div>
+<div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>  </div>
+<div class="line"><a name="l01342"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a14dbabaec827198ee822070c1077a570"> 1342</a></span> <span class="keyword">const</span> EdgeInfoVector& <a class="code" href="classgraphar_1_1_graph_info.html#a14dbabaec827198ee822070c1077a570">GraphInfo::GetEdgeInfos</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>  <span class="keywordflow">return</span> impl_->edge_infos_;</div>
+<div class="line"><a name="l01344"></a><span class="lineno"> 1344</span> }</div>
+<div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>  </div>
+<div class="line"><a name="l01346"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a6e848c7015e3b7d4706ff1ac2ffa6dcd"> 1346</a></span> <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_graph_info.html#a6e848c7015e3b7d4706ff1ac2ffa6dcd">GraphInfo::IsValidated</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> impl_->is_validated(); }</div>
+<div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>  </div>
+<div class="line"><a name="l01348"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a44e38c74dc765a56f8f0d200774d8180"> 1348</a></span> Result<std::shared_ptr<GraphInfo>> <a class="code" href="classgraphar_1_1_graph_info.html#a44e38c74dc765a56f8f0d200774d8180">GraphInfo::AddVertex</a>(</div>
+<div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>  std::shared_ptr<VertexInfo> vertex_info)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>  <span class="keywordflow">if</span> (vertex_info == <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"vertex info is nullptr"</span>);</div>
+<div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>  }</div>
+<div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>  <span class="keywordflow">if</span> (<a class="code" href="classgraphar_1_1_graph_info.html#a0f03270a6ee9c084dab10421cdf69cd5">GetVertexInfoIndex</a>(vertex_info->GetType()) != -1) {</div>
+<div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"vertex info already exists"</span>);</div>
+<div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>  }</div>
+<div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>  <span class="keywordflow">return</span> std::make_shared<GraphInfo>(</div>
+<div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>  impl_->name_, AddVectorElement(impl_->vertex_infos_, vertex_info),</div>
+<div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>  impl_->edge_infos_, impl_->labels_, impl_->prefix_, impl_->version_);</div>
+<div class="line"><a name="l01359"></a><span class="lineno"> 1359</span> }</div>
+<div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>  </div>
+<div class="line"><a name="l01361"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#ad64a71966ca197ae14ea21ff8787b769"> 1361</a></span> Result<std::shared_ptr<GraphInfo>> <a class="code" href="classgraphar_1_1_graph_info.html#ad64a71966ca197ae14ea21ff8787b769">GraphInfo::RemoveVertex</a>(</div>
+<div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>  std::shared_ptr<VertexInfo> vertex_info)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>  <span class="keywordflow">if</span> (vertex_info == <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"vertex info is nullptr"</span>);</div>
+<div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>  }</div>
+<div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>  <span class="keywordtype">int</span> idx = <a class="code" href="classgraphar_1_1_graph_info.html#a0f03270a6ee9c084dab10421cdf69cd5">GetVertexInfoIndex</a>(vertex_info->GetType());</div>
+<div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>  <span class="keywordflow">if</span> (idx == -1) {</div>
+<div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"vertex info not found"</span>);</div>
+<div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>  }</div>
+<div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>  <span class="keywordflow">return</span> std::make_shared<GraphInfo>(</div>
+<div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>  impl_->name_,</div>
+<div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>  RemoveVectorElement(impl_->vertex_infos_, <span class="keyword">static_cast<</span><span class="keywordtype">size_t</span><span class="keyword">></span>(idx)),</div>
+<div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>  impl_->edge_infos_, impl_->labels_, impl_->prefix_, impl_->version_,</div>
+<div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>  impl_->extra_info_);</div>
+<div class="line"><a name="l01375"></a><span class="lineno"> 1375</span> }</div>
+<div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>  </div>
+<div class="line"><a name="l01377"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a8fdf1ff0ec57e3ca2e66dd4366e390aa"> 1377</a></span> Result<std::shared_ptr<GraphInfo>> <a class="code" href="classgraphar_1_1_graph_info.html#a8fdf1ff0ec57e3ca2e66dd4366e390aa">GraphInfo::AddEdge</a>(</div>
+<div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>  std::shared_ptr<EdgeInfo> edge_info)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>  <span class="keywordflow">if</span> (edge_info == <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"edge info is nullptr"</span>);</div>
+<div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>  }</div>
+<div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>  <span class="keywordflow">if</span> (<a class="code" href="classgraphar_1_1_graph_info.html#aa2ca1614d499facc76927b5de733b503">GetEdgeInfoIndex</a>(edge_info->GetSrcType(), edge_info->GetEdgeType(),</div>
+<div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>  edge_info->GetDstType()) != -1) {</div>
+<div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"edge info already exists"</span>);</div>
+<div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>  }</div>
+<div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>  <span class="keywordflow">return</span> std::make_shared<GraphInfo>(</div>
+<div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>  impl_->name_, impl_->vertex_infos_,</div>
+<div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>  AddVectorElement(impl_->edge_infos_, edge_info), impl_->labels_,</div>
+<div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>  impl_->prefix_, impl_->version_);</div>
+<div class="line"><a name="l01390"></a><span class="lineno"> 1390</span> }</div>
+<div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>  </div>
+<div class="line"><a name="l01392"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#acc0e018222ae59e749a52b3678e6529a"> 1392</a></span> Result<std::shared_ptr<GraphInfo>> <a class="code" href="classgraphar_1_1_graph_info.html#acc0e018222ae59e749a52b3678e6529a">GraphInfo::RemoveEdge</a>(</div>
+<div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>  std::shared_ptr<EdgeInfo> edge_info)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>  <span class="keywordflow">if</span> (edge_info == <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"edge info is nullptr"</span>);</div>
+<div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>  }</div>
+<div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>  <span class="keywordtype">int</span> idx = <a class="code" href="classgraphar_1_1_graph_info.html#aa2ca1614d499facc76927b5de733b503">GetEdgeInfoIndex</a>(edge_info->GetSrcType(), edge_info->GetEdgeType(),</div>
+<div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>  edge_info->GetDstType());</div>
+<div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>  <span class="keywordflow">if</span> (idx == -1) {</div>
+<div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"edge info not found"</span>);</div>
+<div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>  }</div>
+<div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>  <span class="keywordflow">return</span> std::make_shared<GraphInfo>(</div>
+<div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>  impl_->name_, impl_->vertex_infos_,</div>
+<div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>  RemoveVectorElement(impl_->edge_infos_, <span class="keyword">static_cast<</span><span class="keywordtype">size_t</span><span class="keyword">></span>(idx)),</div>
+<div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>  impl_->labels_, impl_->prefix_, impl_->version_, impl_->extra_info_);</div>
+<div class="line"><a name="l01406"></a><span class="lineno"> 1406</span> }</div>
+<div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>  </div>
+<div class="line"><a name="l01408"></a><span class="lineno"> 1408</span> std::shared_ptr<GraphInfo> CreateGraphInfo(</div>
+<div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>  <span class="keyword">const</span> std::string& name, <span class="keyword">const</span> VertexInfoVector& vertex_infos,</div>
+<div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>  <span class="keyword">const</span> EdgeInfoVector& edge_infos, <span class="keyword">const</span> std::vector<std::string>& labels,</div>
+<div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>  <span class="keyword">const</span> std::string& prefix, std::shared_ptr<const InfoVersion> version,</div>
+<div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>  <span class="keyword">const</span> std::unordered_map<std::string, std::string>& extra_info) {</div>
+<div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>  <span class="keywordflow">if</span> (name.empty()) {</div>
+<div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>  <span class="keywordflow">return</span> <span class="keyword">nullptr</span>;</div>
+<div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>  }</div>
+<div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>  <span class="keywordflow">return</span> std::make_shared<GraphInfo>(name, vertex_infos, edge_infos, labels,</div>
+<div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>  prefix, version, extra_info);</div>
+<div class="line"><a name="l01418"></a><span class="lineno"> 1418</span> }</div>
+<div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>  </div>
+<div class="line"><a name="l01420"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a63dbd61d6575fe783b3287f391f651ed"> 1420</a></span> Result<std::shared_ptr<GraphInfo>> <a class="code" href="classgraphar_1_1_graph_info.html#a63dbd61d6575fe783b3287f391f651ed">GraphInfo::Load</a>(<span class="keyword">const</span> std::string& path) {</div>
+<div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>  std::string no_url_path;</div>
+<div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> fs, FileSystemFromUriOrPath(path, &no_url_path));</div>
+<div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> yaml_content,</div>
+<div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>  fs->ReadFileToValue<std::string>(no_url_path));</div>
+<div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> graph_meta, <a class="code" href="classgraphar_1_1_yaml.html#a2fff6ba5eaf3e59b489d015f10013179">Yaml::Load</a>(yaml_content));</div>
+<div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>  std::string default_name = <span class="stringliteral">"graph"</span>;</div>
+<div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>  std::string default_prefix = PathToDirectory(path);</div>
+<div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>  no_url_path = PathToDirectory(no_url_path);</div>
+<div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>  <span class="keywordflow">return</span> ConstructGraphInfo(graph_meta, default_name, default_prefix, fs,</div>
+<div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>  no_url_path);</div>
+<div class="line"><a name="l01431"></a><span class="lineno"> 1431</span> }</div>
+<div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>  </div>
+<div class="line"><a name="l01433"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#acf6ef4ce04b70184f596be59dbb58318"> 1433</a></span> Result<std::shared_ptr<GraphInfo>> <a class="code" href="classgraphar_1_1_graph_info.html#a63dbd61d6575fe783b3287f391f651ed">GraphInfo::Load</a>(</div>
+<div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>  <span class="keyword">const</span> std::string& input, <span class="keyword">const</span> std::string& relative_location) {</div>
+<div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> graph_meta, <a class="code" href="classgraphar_1_1_yaml.html#a2fff6ba5eaf3e59b489d015f10013179">Yaml::Load</a>(input));</div>
+<div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>  std::string default_name = <span class="stringliteral">"graph"</span>;</div>
+<div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>  std::string default_prefix =</div>
+<div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>  relative_location; <span class="comment">// default chunk file prefix is relative location</span></div>
+<div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>  std::string no_url_path;</div>
+<div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> fs,</div>
+<div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>  FileSystemFromUriOrPath(relative_location, &no_url_path));</div>
+<div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>  <span class="keywordflow">return</span> ConstructGraphInfo(graph_meta, default_name, default_prefix, fs,</div>
+<div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>  no_url_path);</div>
+<div class="line"><a name="l01444"></a><span class="lineno"> 1444</span> }</div>
+<div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>  </div>
+<div class="line"><a name="l01446"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a71646413e64620af1ca83f404e7150ea"> 1446</a></span> Result<std::string> <a class="code" href="classgraphar_1_1_graph_info.html#a71646413e64620af1ca83f404e7150ea">GraphInfo::Dump</a>()<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>  <span class="keywordflow">if</span> (!<a class="code" href="classgraphar_1_1_graph_info.html#a6e848c7015e3b7d4706ff1ac2ffa6dcd">IsValidated</a>()) {</div>
+<div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"The graph info is not validated."</span>);</div>
+<div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>  }</div>
+<div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>  ::Yaml::Node node;</div>
+<div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>  std::string dump_string;</div>
+<div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>  <span class="keywordflow">try</span> {</div>
+<div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>  node[<span class="stringliteral">"name"</span>] = impl_->name_;</div>
+<div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>  node[<span class="stringliteral">"prefix"</span>] = impl_->prefix_;</div>
+<div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>  node[<span class="stringliteral">"vertices"</span>];</div>
+<div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>  node[<span class="stringliteral">"edges"</span>];</div>
+<div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& vertex : <a class="code" href="classgraphar_1_1_graph_info.html#a9393d2797ff5d77f66691f84f15007c4">GetVertexInfos</a>()) {</div>
+<div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>  node[<span class="stringliteral">"vertices"</span>].PushBack();</div>
+<div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>  node[<span class="stringliteral">"vertices"</span>][node[<span class="stringliteral">"vertices"</span>].Size() - 1] =</div>
+<div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>  vertex->GetType() + <span class="stringliteral">".vertex.yaml"</span>;</div>
+<div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>  }</div>
+<div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& edge : <a class="code" href="classgraphar_1_1_graph_info.html#a14dbabaec827198ee822070c1077a570">GetEdgeInfos</a>()) {</div>
+<div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>  node[<span class="stringliteral">"edges"</span>].PushBack();</div>
+<div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>  node[<span class="stringliteral">"edges"</span>][node[<span class="stringliteral">"edges"</span>].Size() - 1] =</div>
+<div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>  ConcatEdgeTriple(edge->GetSrcType(), edge->GetEdgeType(),</div>
+<div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>  edge->GetDstType()) +</div>
+<div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>  <span class="stringliteral">".edge.yaml"</span>;</div>
+<div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>  }</div>
+<div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>  <span class="keywordflow">if</span> (impl_->labels_.size() > 0) {</div>
+<div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>  node[<span class="stringliteral">"labels"</span>];</div>
+<div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& label : impl_->labels_) {</div>
+<div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>  node[<span class="stringliteral">"labels"</span>].PushBack();</div>
+<div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>  node[<span class="stringliteral">"labels"</span>][node[<span class="stringliteral">"labels"</span>].Size() - 1] = label;</div>
+<div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>  }</div>
+<div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>  }</div>
+<div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>  <span class="keywordflow">if</span> (impl_->version_ != <span class="keyword">nullptr</span>) {</div>
+<div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>  node[<span class="stringliteral">"version"</span>] = impl_->version_->ToString();</div>
+<div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>  }</div>
+<div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>  <span class="keywordflow">if</span> (impl_->extra_info_.size() > 0) {</div>
+<div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>  node[<span class="stringliteral">"extra_info"</span>];</div>
+<div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>  <span class="keywordflow">for</span> (<span class="keyword">const</span> <span class="keyword">auto</span>& pair : impl_->extra_info_) {</div>
+<div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>  ::Yaml::Node extra_info_node;</div>
+<div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>  extra_info_node[<span class="stringliteral">"key"</span>] = pair.first;</div>
+<div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>  extra_info_node[<span class="stringliteral">"value"</span>] = pair.second;</div>
+<div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>  node[<span class="stringliteral">"extra_info"</span>].PushBack();</div>
+<div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>  node[<span class="stringliteral">"extra_info"</span>][node[<span class="stringliteral">"extra_info"</span>].Size() - 1] = extra_info_node;</div>
+<div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>  }</div>
+<div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>  }</div>
+<div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>  ::Yaml::Serialize(node, dump_string);</div>
+<div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>  } <span class="keywordflow">catch</span> (<span class="keyword">const</span> std::exception& e) {</div>
+<div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>  <span class="keywordflow">return</span> <a class="code" href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">Status::Invalid</a>(<span class="stringliteral">"Failed to dump graph info: "</span>, e.what());</div>
+<div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>  }</div>
+<div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>  <span class="keywordflow">return</span> dump_string;</div>
+<div class="line"><a name="l01494"></a><span class="lineno"> 1494</span> }</div>
+<div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>  </div>
+<div class="line"><a name="l01496"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html#a339f08f5a1427aadc91d30d41dccced3"> 1496</a></span> <a class="code" href="classgraphar_1_1_status.html">Status</a> <a class="code" href="classgraphar_1_1_graph_info.html#a339f08f5a1427aadc91d30d41dccced3">GraphInfo::Save</a>(<span class="keyword">const</span> std::string& path)<span class="keyword"> const </span>{</div>
+<div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>  std::string no_url_path;</div>
+<div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> fs, FileSystemFromUriOrPath(path, &no_url_path));</div>
+<div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>  GAR_ASSIGN_OR_RAISE(<span class="keyword">auto</span> yaml_content, this-><a class="code" href="classgraphar_1_1_graph_info.html#a71646413e64620af1ca83f404e7150ea">Dump</a>());</div>
+<div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>  <span class="keywordflow">return</span> fs->WriteValueToFile(yaml_content, no_url_path);</div>
+<div class="line"><a name="l01501"></a><span class="lineno"> 1501</span> }</div>
+<div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>  </div>
+<div class="line"><a name="l01503"></a><span class="lineno"> 1503</span> } <span class="comment">// namespace graphar</span></div>
+<div class="ttc" id="aclassgraphar_1_1_adjacent_list_html_a592ba95843997b321f5545e950f03a57"><div class="ttname"><a href="classgraphar_1_1_adjacent_list.html#a592ba95843997b321f5545e950f03a57">graphar::AdjacentList::IsValidated</a></div><div class="ttdeci">bool IsValidated() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00191">graph_info.cc:191</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_adjacent_list_html_ab31cbdbaae74305f7bf3ffbd76c93efc"><div class="ttname"><a href="classgraphar_1_1_adjacent_list.html#ab31cbdbaae74305f7bf3ffbd76c93efc">graphar::AdjacentList::AdjacentList</a></div><div class="ttdeci">AdjacentList(AdjListType type, FileType file_type, const std::string &prefix="")</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00183">graph_info.cc:183</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_1_1_impl_html"><div class="ttname"><a href="classgraphar_1_1_edge_info_1_1_impl.html">graphar::EdgeInfo::Impl</a></div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00573">graph_info.cc:573</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a03c9b4f4b0edcf47f2e5746e8f9f6db0"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a03c9b4f4b0edcf47f2e5746e8f9f6db0">graphar::EdgeInfo::GetEdgeType</a></div><div class="ttdeci">const std::string & GetEdgeType() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00694">graph_info.cc:694</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a0ac67e1cf3b3fa79b6fcbc054869d0e5"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a0ac67e1cf3b3fa79b6fcbc054869d0e5">graphar::EdgeInfo::Load</a></div><div class="ttdeci">static Result< std::shared_ptr< EdgeInfo > > Load(std::shared_ptr< Yaml > yaml)</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00966">graph_info.cc:966</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a0eb9f0ff282c73f5c90a8c3940f1929e"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a0eb9f0ff282c73f5c90a8c3940f1929e">graphar::EdgeInfo::GetAdjListFilePath</a></div><div class="ttdeci">Result< std::string > GetAdjListFilePath(IdType vertex_chunk_index, IdType edge_chunk_index, AdjListType adj_list_type) const</div><div class="ttdoc">Get the file path of adj list topology chunk.</div><div class="ttdef"><b>Definition: [...]
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a1e95f986bd8c5191f438705b195191e3"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a1e95f986bd8c5191f438705b195191e3">graphar::EdgeInfo::Save</a></div><div class="ttdeci">Status Save(const std::string &file_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01107">graph_info.cc:1107</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a264853429b84060bbe36c671d5bc8963"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a264853429b84060bbe36c671d5bc8963">graphar::EdgeInfo::RemovePropertyGroup</a></div><div class="ttdeci">Result< std::shared_ptr< EdgeInfo > > RemovePropertyGroup(std::shared_ptr< PropertyGroup > property_group) const</div><div class="ttdoc">Removes a property group from the EdgeInfo instance and returns a new EdgeInfo.</div [...]
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a37fa8536c627a5e5f529e8ee6d3d7506"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a37fa8536c627a5e5f529e8ee6d3d7506">graphar::EdgeInfo::GetPropertyType</a></div><div class="ttdeci">Result< std::shared_ptr< DataType > > GetPropertyType(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00843">graph_info.cc:843</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a3dca57726506375cab4fc43fdef2914f"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a3dca57726506375cab4fc43fdef2914f">graphar::EdgeInfo::IsValidated</a></div><div class="ttdeci">bool IsValidated() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00947">graph_info.cc:947</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a4ec8810a54411f9a8aba35b2faf29acb"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a4ec8810a54411f9a8aba35b2faf29acb">graphar::EdgeInfo::GetPrefix</a></div><div class="ttdeci">const std::string & GetPrefix() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00704">graph_info.cc:704</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a4f2c7fedc68dce8f1c7fb90eede9906f"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a4f2c7fedc68dce8f1c7fb90eede9906f">graphar::EdgeInfo::GetEdgesNumFilePath</a></div><div class="ttdeci">Result< std::string > GetEdgesNumFilePath(IdType vertex_chunk_index, AdjListType adj_list_type) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00774">graph_info.cc:774</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a55004cedc30fcb0fa94adf246dcc2702"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a55004cedc30fcb0fa94adf246dcc2702">graphar::EdgeInfo::GetPropertyGroupPathPrefix</a></div><div class="ttdeci">Result< std::string > GetPropertyGroupPathPrefix(const std::shared_ptr< PropertyGroup > &property_group, AdjListType adj_list_type) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.htm [...]
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a5bd430ba21f5dfb230b978e03c4020ef"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a5bd430ba21f5dfb230b978e03c4020ef">graphar::EdgeInfo::IsPrimaryKey</a></div><div class="ttdeci">bool IsPrimaryKey(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00852">graph_info.cc:852</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a615fe3ed78f35af9aef598287cb89a27"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a615fe3ed78f35af9aef598287cb89a27">graphar::EdgeInfo::GetAdjListOffsetFilePath</a></div><div class="ttdeci">Result< std::string > GetAdjListOffsetFilePath(IdType vertex_chunk_index, AdjListType adj_list_type) const</div><div class="ttdoc">Get the adjacency list offset chunk file path of vertex chunk the offset chunks is aligned with t [...]
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a62c2300185c0655df9b44db39b0a399b"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a62c2300185c0655df9b44db39b0a399b">graphar::EdgeInfo::GetChunkSize</a></div><div class="ttdeci">IdType GetChunkSize() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00698">graph_info.cc:698</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a69182fa8d45bb0e7d4ac230adb1239b2"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a69182fa8d45bb0e7d4ac230adb1239b2">graphar::EdgeInfo::HasProperty</a></div><div class="ttdeci">bool HasProperty(const std::string &property_name) const</div><div class="ttdoc">Returns whether the edge info contains the given property.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00717">graph_info.cc:7 [...]
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a6e5b4fdc98d8399564396fb63955c62a"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a6e5b4fdc98d8399564396fb63955c62a">graphar::EdgeInfo::AddAdjacentList</a></div><div class="ttdeci">Result< std::shared_ptr< EdgeInfo > > AddAdjacentList(std::shared_ptr< AdjacentList > adj_list) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00868">graph_info.cc:868</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a7db36496a4cf0eb517b463de5caa125f"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a7db36496a4cf0eb517b463de5caa125f">graphar::EdgeInfo::RemoveAdjacentList</a></div><div class="ttdeci">Result< std::shared_ptr< EdgeInfo > > RemoveAdjacentList(std::shared_ptr< AdjacentList > adj_list) const</div><div class="ttdoc">Removes an adjacency list from the EdgeInfo instance and returns a new EdgeInfo.</div><div cl [...]
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a80004230ddfbc892995732ea59993a27"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a80004230ddfbc892995732ea59993a27">graphar::EdgeInfo::Dump</a></div><div class="ttdeci">Result< std::string > Dump() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01052">graph_info.cc:1052</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a80b00d930f22870d00331a639c9cc26e"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a80b00d930f22870d00331a639c9cc26e">graphar::EdgeInfo::IsNullableKey</a></div><div class="ttdeci">bool IsNullableKey(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00860">graph_info.cc:860</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a8551959066b19885b9ce15262b5cb3db"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a8551959066b19885b9ce15262b5cb3db">graphar::EdgeInfo::GetPropertyGroupByIndex</a></div><div class="ttdeci">std::shared_ptr< PropertyGroup > GetPropertyGroupByIndex(int index) const</div><div class="ttdoc">Get the property group at the specified index.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l007 [...]
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a857bb686e5d7f579ac0e2a889a53f829"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a857bb686e5d7f579ac0e2a889a53f829">graphar::EdgeInfo::HasPropertyGroup</a></div><div class="ttdeci">bool HasPropertyGroup(const std::shared_ptr< PropertyGroup > &property_group) const</div><div class="ttdoc">Returns whether the edge info contains the given property group.</div><div class="ttdef"><b>Definition:</b> <a href="graph__ [...]
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a9440bef05f4fa689662f26a9ef0117c1"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a9440bef05f4fa689662f26a9ef0117c1">graphar::EdgeInfo::version</a></div><div class="ttdeci">const std::shared_ptr< const InfoVersion > & version() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00708">graph_info.cc:708</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a9620f838addfdcb892b30e80e2cc4239"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a9620f838addfdcb892b30e80e2cc4239">graphar::EdgeInfo::AddPropertyGroup</a></div><div class="ttdeci">Result< std::shared_ptr< EdgeInfo > > AddPropertyGroup(std::shared_ptr< PropertyGroup > property_group) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00906">graph_info.cc:906</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a994023f50f2f952cc1361b0f9928dec4"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a994023f50f2f952cc1361b0f9928dec4">graphar::EdgeInfo::GetSrcType</a></div><div class="ttdeci">const std::string & GetSrcType() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00692">graph_info.cc:692</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_aaa6633dc8136cec806cbcf42c2cf136d"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#aaa6633dc8136cec806cbcf42c2cf136d">graphar::EdgeInfo::HasAdjacentListType</a></div><div class="ttdeci">bool HasAdjacentListType(AdjListType adj_list_type) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00712">graph_info.cc:712</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_aab2032669c9e9dcf11275fdd4cb2c1fa"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#aab2032669c9e9dcf11275fdd4cb2c1fa">graphar::EdgeInfo::GetOffsetPathPrefix</a></div><div class="ttdeci">Result< std::string > GetOffsetPathPrefix(AdjListType adj_list_type) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00808">graph_info.cc:808</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_aad31af465d41c026a35c20828915922e"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#aad31af465d41c026a35c20828915922e">graphar::EdgeInfo::IsDirected</a></div><div class="ttdeci">bool IsDirected() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00706">graph_info.cc:706</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_ab39f63f0aa7284c510a7e0d61b0942d3"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#ab39f63f0aa7284c510a7e0d61b0942d3">graphar::EdgeInfo::GetAdjListPathPrefix</a></div><div class="ttdeci">Result< std::string > GetAdjListPathPrefix(AdjListType adj_list_type) const</div><div class="ttdoc">Get the path prefix of the adjacency list topology chunk for the given adjacency list type.</div><div class="ttdef"><b>Definition:</ [...]
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_ab3c32f3112dcf08304676eeb95545b55"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#ab3c32f3112dcf08304676eeb95545b55">graphar::EdgeInfo::EdgeInfo</a></div><div class="ttdeci">EdgeInfo(const std::string &src_type, const std::string &edge_type, const std::string &dst_type, IdType chunk_size, IdType src_chunk_size, IdType dst_chunk_size, bool directed, const AdjacentListVector &adjacent_lists, const PropertyG [...]
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_abe0fc6672a3fbb5fbd0b5e8775cb8dac"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#abe0fc6672a3fbb5fbd0b5e8775cb8dac">graphar::EdgeInfo::GetDstChunkSize</a></div><div class="ttdeci">IdType GetDstChunkSize() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00702">graph_info.cc:702</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_abfcba5aed61cdfaf91f98e649b370722"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#abfcba5aed61cdfaf91f98e649b370722">graphar::EdgeInfo::GetPropertyFilePath</a></div><div class="ttdeci">Result< std::string > GetPropertyFilePath(const std::shared_ptr< PropertyGroup > &property_group, AdjListType adj_list_type, IdType vertex_chunk_index, IdType edge_chunk_index) const</div><div class="ttdoc">Get the chunk fi [...]
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_ac03180737adf29c79196bbe729b3c929"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#ac03180737adf29c79196bbe729b3c929">graphar::EdgeInfo::GetDstType</a></div><div class="ttdeci">const std::string & GetDstType() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00696">graph_info.cc:696</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_ac07ad975e8ecbdb779038388e3def59e"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#ac07ad975e8ecbdb779038388e3def59e">graphar::EdgeInfo::GetSrcChunkSize</a></div><div class="ttdeci">IdType GetSrcChunkSize() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00700">graph_info.cc:700</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_ad56107001dcbadac71ae8063cd25b58f"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#ad56107001dcbadac71ae8063cd25b58f">graphar::EdgeInfo::GetPropertyGroups</a></div><div class="ttdeci">const PropertyGroupVector & GetPropertyGroups() const</div><div class="ttdoc">Get the property groups.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00748">graph_info.cc:748</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_aec1a622c83b14d62b26e7143850a3cf1"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#aec1a622c83b14d62b26e7143850a3cf1">graphar::EdgeInfo::GetVerticesNumFilePath</a></div><div class="ttdeci">Result< std::string > GetVerticesNumFilePath(AdjListType adj_list_type) const</div><div class="ttdoc">Get the file path for the number of vertices.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l0 [...]
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_aec1bdf018d5b209f722dbf293ef14dd6"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#aec1bdf018d5b209f722dbf293ef14dd6">graphar::EdgeInfo::GetPropertyGroup</a></div><div class="ttdeci">std::shared_ptr< PropertyGroup > GetPropertyGroup(const std::string &property) const</div><div class="ttdoc">Get the property group containing the given property.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_s [...]
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_aee914f2c4adf773c048daed0e93dbe32"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#aee914f2c4adf773c048daed0e93dbe32">graphar::EdgeInfo::PropertyGroupNum</a></div><div class="ttdeci">int PropertyGroupNum() const</div><div class="ttdoc">Get the number of property groups.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00744">graph_info.cc:744</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_graph_info_1_1_impl_html"><div class="ttname"><a href="classgraphar_1_1_graph_info_1_1_impl.html">graphar::GraphInfo::Impl</a></div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01204">graph_info.cc:1204</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a0f03270a6ee9c084dab10421cdf69cd5"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a0f03270a6ee9c084dab10421cdf69cd5">graphar::GraphInfo::GetVertexInfoIndex</a></div><div class="ttdeci">int GetVertexInfoIndex(const std::string &type) const</div><div class="ttdoc">Get the vertex info index with the given type.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01297">graph_info.cc:1297</ [...]
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a14dbabaec827198ee822070c1077a570"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a14dbabaec827198ee822070c1077a570">graphar::GraphInfo::GetEdgeInfos</a></div><div class="ttdeci">const EdgeInfoVector & GetEdgeInfos() const</div><div class="ttdoc">Get the edge infos of graph info.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01342">graph_info.cc:1342</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a1b473deea923f7b2a57c339dc7e51192"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a1b473deea923f7b2a57c339dc7e51192">graphar::GraphInfo::GraphInfo</a></div><div class="ttdeci">GraphInfo(const std::string &graph_name, VertexInfoVector vertex_infos, EdgeInfoVector edge_infos, const std::vector< std::string > &labels={}, const std::string &prefix="./", std::shared_ptr< const InfoVersion > [...]
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a339f08f5a1427aadc91d30d41dccced3"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a339f08f5a1427aadc91d30d41dccced3">graphar::GraphInfo::Save</a></div><div class="ttdeci">Status Save(const std::string &path) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01496">graph_info.cc:1496</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a3a94e3d0f64a1b4d1b672676940c389f"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a3a94e3d0f64a1b4d1b672676940c389f">graphar::GraphInfo::GetVertexInfoByIndex</a></div><div class="ttdeci">const std::shared_ptr< VertexInfo > GetVertexInfoByIndex(int index) const</div><div class="ttdoc">Get the vertex info at the specified index.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01323" [...]
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a44e38c74dc765a56f8f0d200774d8180"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a44e38c74dc765a56f8f0d200774d8180">graphar::GraphInfo::AddVertex</a></div><div class="ttdeci">Result< std::shared_ptr< GraphInfo > > AddVertex(std::shared_ptr< VertexInfo > vertex_info) const</div><div class="ttdoc">Adds a vertex info to the GraphInfo instance and returns a new GraphInfo.</div><div class="ttdef"><b>Defin [...]
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a53eef3d15830bea15de0bbbe7e11e208"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a53eef3d15830bea15de0bbbe7e11e208">graphar::GraphInfo::GetPrefix</a></div><div class="ttdeci">const std::string & GetPrefix() const</div><div class="ttdoc">Get the absolute path prefix of the chunk files.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01280">graph_info.cc:1280</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a63dbd61d6575fe783b3287f391f651ed"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a63dbd61d6575fe783b3287f391f651ed">graphar::GraphInfo::Load</a></div><div class="ttdeci">static Result< std::shared_ptr< GraphInfo > > Load(const std::string &path)</div><div class="ttdoc">Loads the input file as a GraphInfo instance.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01420">g [...]
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a6e848c7015e3b7d4706ff1ac2ffa6dcd"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a6e848c7015e3b7d4706ff1ac2ffa6dcd">graphar::GraphInfo::IsValidated</a></div><div class="ttdeci">bool IsValidated() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01346">graph_info.cc:1346</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a71646413e64620af1ca83f404e7150ea"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a71646413e64620af1ca83f404e7150ea">graphar::GraphInfo::Dump</a></div><div class="ttdeci">Result< std::string > Dump() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01446">graph_info.cc:1446</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a7e660710d2e1bd244b5d28bdc68aeab2"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a7e660710d2e1bd244b5d28bdc68aeab2">graphar::GraphInfo::GetEdgeInfo</a></div><div class="ttdeci">std::shared_ptr< EdgeInfo > GetEdgeInfo(const std::string &src_type, const std::string &edge_type, const std::string &dst_type) const</div><div class="ttdoc">Get the edge info with the given source vertex type, edge type, and [...]
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a814f2cdeecf58a308ab886a085991fc4"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a814f2cdeecf58a308ab886a085991fc4">graphar::GraphInfo::EdgeInfoNum</a></div><div class="ttdeci">int EdgeInfoNum() const</div><div class="ttdoc">Get the number of edge infos.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01319">graph_info.cc:1319</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a8799b4b1a2163507a9ddd8f910d4a9d3"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a8799b4b1a2163507a9ddd8f910d4a9d3">graphar::GraphInfo::GetVertexInfo</a></div><div class="ttdeci">std::shared_ptr< VertexInfo > GetVertexInfo(const std::string &type) const</div><div class="ttdoc">Get the vertex info with the given type.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01291">grap [...]
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a8b057bb6c3cfd897b0fb31ecceea40c9"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a8b057bb6c3cfd897b0fb31ecceea40c9">graphar::GraphInfo::GetLabels</a></div><div class="ttdeci">const std::vector< std::string > & GetLabels() const</div><div class="ttdoc">Get the vertex labels of the graph.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01276">graph_info.cc:1276</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a8fdf1ff0ec57e3ca2e66dd4366e390aa"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a8fdf1ff0ec57e3ca2e66dd4366e390aa">graphar::GraphInfo::AddEdge</a></div><div class="ttdeci">Result< std::shared_ptr< GraphInfo > > AddEdge(std::shared_ptr< EdgeInfo > edge_info) const</div><div class="ttdoc">Adds an edge info to the GraphInfo instance and returns a new GraphInfo.</div><div class="ttdef"><b>Definition:</b [...]
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a9393d2797ff5d77f66691f84f15007c4"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a9393d2797ff5d77f66691f84f15007c4">graphar::GraphInfo::GetVertexInfos</a></div><div class="ttdeci">const VertexInfoVector & GetVertexInfos() const</div><div class="ttdoc">Get the vertex infos of graph info.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01338">graph_info.cc:1338</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_aa0856ec7ecc8d8d1aac2f7cd51cfe136"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#aa0856ec7ecc8d8d1aac2f7cd51cfe136">graphar::GraphInfo::GetExtraInfo</a></div><div class="ttdeci">const std::unordered_map< std::string, std::string > & GetExtraInfo() const</div><div class="ttdoc">Get the extra metadata of the graph info object.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l012 [...]
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_aa2ca1614d499facc76927b5de733b503"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#aa2ca1614d499facc76927b5de733b503">graphar::GraphInfo::GetEdgeInfoIndex</a></div><div class="ttdeci">int GetEdgeInfoIndex(const std::string &src_type, const std::string &edge_type, const std::string &dst_type) const</div><div class="ttdoc">Get the edge info index with the given source vertex type, edge type, and destination ty [...]
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_aa384328a58c9138b5b77ea6172199d07"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#aa384328a58c9138b5b77ea6172199d07">graphar::GraphInfo::VertexInfoNum</a></div><div class="ttdeci">int VertexInfoNum() const</div><div class="ttdoc">Get the number of vertex infos.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01315">graph_info.cc:1315</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_ab10cb1ceaa01a74d44c1076c43c2fcce"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#ab10cb1ceaa01a74d44c1076c43c2fcce">graphar::GraphInfo::GetName</a></div><div class="ttdeci">const std::string & GetName() const</div><div class="ttdoc">Get the name of the graph.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01274">graph_info.cc:1274</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_acc0e018222ae59e749a52b3678e6529a"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#acc0e018222ae59e749a52b3678e6529a">graphar::GraphInfo::RemoveEdge</a></div><div class="ttdeci">Result< std::shared_ptr< GraphInfo > > RemoveEdge(std::shared_ptr< EdgeInfo > edge_info) const</div><div class="ttdoc">Removes an edge info from the GraphInfo instance and returns a new GraphInfo.</div><div class="ttdef"><b>Def [...]
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_ad64a71966ca197ae14ea21ff8787b769"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#ad64a71966ca197ae14ea21ff8787b769">graphar::GraphInfo::RemoveVertex</a></div><div class="ttdeci">Result< std::shared_ptr< GraphInfo > > RemoveVertex(std::shared_ptr< VertexInfo > vertex_info) const</div><div class="ttdoc">Removes a vertex info from the GraphInfo instance and returns a new GraphInfo.</div><div class="ttde [...]
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_aeb68a7550c63365d8093136601a3aeee"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#aeb68a7550c63365d8093136601a3aeee">graphar::GraphInfo::version</a></div><div class="ttdeci">const std::shared_ptr< const InfoVersion > & version() const</div><div class="ttdoc">Get the version info of the graph info object.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01282">graph_info.cc:1282 [...]
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_afd61923bd9ff1f5329b1c93ebbcd0278"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#afd61923bd9ff1f5329b1c93ebbcd0278">graphar::GraphInfo::GetEdgeInfoByIndex</a></div><div class="ttdeci">const std::shared_ptr< EdgeInfo > GetEdgeInfoByIndex(int index) const</div><div class="ttdoc">Get the edge info at the specified index.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01331">graph_i [...]
<div class="ttc" id="aclassgraphar_1_1_info_version_html_a6c149bd120118e7c6803dcac71a7a667"><div class="ttname"><a href="classgraphar_1_1_info_version.html#a6c149bd120118e7c6803dcac71a7a667">graphar::InfoVersion::Parse</a></div><div class="ttdeci">static Result< std::shared_ptr< const InfoVersion > > Parse(const std::string &str) noexcept</div><div class="ttdef"><b>Definition:</b> <a href="version__parser_8cc_source.html#l00107">version_parser.cc:107</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_property_group_html_a9a1d4401d81fb2576ae3f3de21eb9e25"><div class="ttname"><a href="classgraphar_1_1_property_group.html#a9a1d4401d81fb2576ae3f3de21eb9e25">graphar::PropertyGroup::IsValidated</a></div><div class="ttdeci">bool IsValidated() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00118">graph_info.cc:118</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_property_group_html_abb84d3d9d16e5efc52c96089a977c60d"><div class="ttname"><a href="classgraphar_1_1_property_group.html#abb84d3d9d16e5efc52c96089a977c60d">graphar::PropertyGroup::PropertyGroup</a></div><div class="ttdeci">PropertyGroup(const std::vector< Property > &properties, FileType file_type, const std::string &prefix="")</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00094">graph_info. [...]
-<div class="ttc" id="aclassgraphar_1_1_property_group_html_af090f1d74049ce0222148ad02b26f81a"><div class="ttname"><a href="classgraphar_1_1_property_group.html#af090f1d74049ce0222148ad02b26f81a">graphar::PropertyGroup::GetProperties</a></div><div class="ttdeci">const std::vector< Property > & GetProperties() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00105">graph_info.cc:105</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_property_group_html_a9a1d4401d81fb2576ae3f3de21eb9e25"><div class="ttname"><a href="classgraphar_1_1_property_group.html#a9a1d4401d81fb2576ae3f3de21eb9e25">graphar::PropertyGroup::IsValidated</a></div><div class="ttdeci">bool IsValidated() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00133">graph_info.cc:133</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_property_group_html_abb84d3d9d16e5efc52c96089a977c60d"><div class="ttname"><a href="classgraphar_1_1_property_group.html#abb84d3d9d16e5efc52c96089a977c60d">graphar::PropertyGroup::PropertyGroup</a></div><div class="ttdeci">PropertyGroup(const std::vector< Property > &properties, FileType file_type, const std::string &prefix="")</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00109">graph_info. [...]
+<div class="ttc" id="aclassgraphar_1_1_property_group_html_af090f1d74049ce0222148ad02b26f81a"><div class="ttname"><a href="classgraphar_1_1_property_group.html#af090f1d74049ce0222148ad02b26f81a">graphar::PropertyGroup::GetProperties</a></div><div class="ttdeci">const std::vector< Property > & GetProperties() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00120">graph_info.cc:120</a></div></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_a358b23c7f34efbf14c84cbc2ddbdd6a4"><div class="ttname"><a href="classgraphar_1_1_status.html#a358b23c7f34efbf14c84cbc2ddbdd6a4">graphar::Status::YamlError</a></div><div class="ttdeci">static Status YamlError(Args &&... 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_a9ca4be37aae8dfea7e6ef54920e0073f"><div class="ttname"><a href="classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f">graphar::Status::Invalid</a></div><div class="ttdeci">static Status Invalid(Args &&... 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_vertex_info_1_1_impl_html"><div class="ttname"><a href="classgraphar_1_1_vertex_info_1_1_impl.html">graphar::VertexInfo::Impl</a></div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00197">graph_info.cc:197</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a2364ef208346bbd4d468ee78cfc6a1a3"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a2364ef208346bbd4d468ee78cfc6a1a3">graphar::VertexInfo::GetType</a></div><div class="ttdeci">const std::string & GetType() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00275">graph_info.cc:275</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a2a4cc44b7db8784bdb0e9691c7ad0fba"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a2a4cc44b7db8784bdb0e9691c7ad0fba">graphar::VertexInfo::GetPropertyGroup</a></div><div class="ttdeci">std::shared_ptr< PropertyGroup > GetPropertyGroup(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00314">graph_info.cc:314</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a3214a62ac41be6cb53c22894d2926710"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a3214a62ac41be6cb53c22894d2926710">graphar::VertexInfo::GetPathPrefix</a></div><div class="ttdeci">Result< std::string > GetPathPrefix(std::shared_ptr< PropertyGroup > property_group) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00298">graph_info.cc:298</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a34a49ce4905632889db3f969986cbe75"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a34a49ce4905632889db3f969986cbe75">graphar::VertexInfo::GetLabels</a></div><div class="ttdeci">const std::vector< std::string > & GetLabels() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00281">graph_info.cc:281</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a39a607d51da7e73a0fae473e90a61825"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a39a607d51da7e73a0fae473e90a61825">graphar::VertexInfo::GetChunkSize</a></div><div class="ttdeci">IdType GetChunkSize() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00277">graph_info.cc:277</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a47c84aab28674b5250a26c97806f2f48"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a47c84aab28674b5250a26c97806f2f48">graphar::VertexInfo::version</a></div><div class="ttdeci">const std::shared_ptr< const InfoVersion > & version() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00285">graph_info.cc:285</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a4a70be2aa82d5c435b3271ae766bb54d"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a4a70be2aa82d5c435b3271ae766bb54d">graphar::VertexInfo::AddPropertyGroup</a></div><div class="ttdeci">Result< std::shared_ptr< VertexInfo > > AddPropertyGroup(std::shared_ptr< PropertyGroup > property_group) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00384">graph_info.cc:384< [...]
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a5d42bec7d8cdb67f1e04b921f484e328"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a5d42bec7d8cdb67f1e04b921f484e328">graphar::VertexInfo::HasProperty</a></div><div class="ttdeci">bool HasProperty(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00348">graph_info.cc:348</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a64aca915578185662b4429e5ed265322"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a64aca915578185662b4429e5ed265322">graphar::VertexInfo::HasPropertyGroup</a></div><div class="ttdeci">bool HasPropertyGroup(const std::shared_ptr< PropertyGroup > &property_group) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00353">graph_info.cc:353</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a65faa894acf765eae9c7d4e34dff6306"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a65faa894acf765eae9c7d4e34dff6306">graphar::VertexInfo::GetFilePath</a></div><div class="ttdeci">Result< std::string > GetFilePath(std::shared_ptr< PropertyGroup > property_group, IdType chunk_index) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00289">graph_info.cc:289</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a68f7407348b39115e0fa4d44750e9d37"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a68f7407348b39115e0fa4d44750e9d37">graphar::VertexInfo::IsPrimaryKey</a></div><div class="ttdeci">bool IsPrimaryKey(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00332">graph_info.cc:332</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a70d2cb4637d4b2909bd34045a39568af"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a70d2cb4637d4b2909bd34045a39568af">graphar::VertexInfo::IsValidated</a></div><div class="ttdeci">bool IsValidated() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00401">graph_info.cc:401</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a7917824d18f7c84a02859f18b47e77fe"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a7917824d18f7c84a02859f18b47e77fe">graphar::VertexInfo::PropertyGroupNum</a></div><div class="ttdeci">int PropertyGroupNum() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00310">graph_info.cc:310</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a8fb76a180c2fb8192961a27862f5aa69"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a8fb76a180c2fb8192961a27862f5aa69">graphar::VertexInfo::GetPrefix</a></div><div class="ttdeci">const std::string & GetPrefix() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00279">graph_info.cc:279</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_aad61b0a40a4bef344fad93cb1332d97d"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#aad61b0a40a4bef344fad93cb1332d97d">graphar::VertexInfo::GetVerticesNumFilePath</a></div><div class="ttdeci">Result< std::string > GetVerticesNumFilePath() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00306">graph_info.cc:306</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_acbeedc2afc98e53155bb1f75c9cb465c"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#acbeedc2afc98e53155bb1f75c9cb465c">graphar::VertexInfo::GetPropertyType</a></div><div class="ttdeci">Result< std::shared_ptr< DataType > > GetPropertyType(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00366">graph_info.cc:366</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_acddb12cfcf7c6bfe1f1937f984828312"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#acddb12cfcf7c6bfe1f1937f984828312">graphar::VertexInfo::VertexInfo</a></div><div class="ttdeci">VertexInfo(const std::string &type, IdType chunk_size, const PropertyGroupVector &property_groups, const std::vector< std::string > &labels={}, const std::string &prefix="", std::shared_ptr< const InfoVersio [...]
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_ad6bc3cbb3ed0c5eaa7fd50298e106a78"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#ad6bc3cbb3ed0c5eaa7fd50298e106a78">graphar::VertexInfo::IsNullableKey</a></div><div class="ttdeci">bool IsNullableKey(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00340">graph_info.cc:340</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_adc0a253c371a004324ffae6e8abbdbc7"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#adc0a253c371a004324ffae6e8abbdbc7">graphar::VertexInfo::Dump</a></div><div class="ttdeci">Result< std::string > Dump() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00482">graph_info.cc:482</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_af1ade1caa6e70e4b7ce60cf4df7ac50c"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#af1ade1caa6e70e4b7ce60cf4df7ac50c">graphar::VertexInfo::Load</a></div><div class="ttdeci">static Result< std::shared_ptr< VertexInfo > > Load(std::shared_ptr< Yaml > yaml)</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00415">graph_info.cc:415</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_af6106f8fa90d876a0e97f58c7c39db33"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#af6106f8fa90d876a0e97f58c7c39db33">graphar::VertexInfo::GetPropertyGroupByIndex</a></div><div class="ttdeci">std::shared_ptr< PropertyGroup > GetPropertyGroupByIndex(int index) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00320">graph_info.cc:320</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_afd42b99a43507a9edb1825e7e104d1e7"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#afd42b99a43507a9edb1825e7e104d1e7">graphar::VertexInfo::Save</a></div><div class="ttdeci">Status Save(const std::string &file_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00530">graph_info.cc:530</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_aff9aadd406180802facb14d6a4b5e72e"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#aff9aadd406180802facb14d6a4b5e72e">graphar::VertexInfo::GetPropertyGroups</a></div><div class="ttdeci">const PropertyGroupVector & GetPropertyGroups() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00328">graph_info.cc:328</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_1_1_impl_html"><div class="ttname"><a href="classgraphar_1_1_vertex_info_1_1_impl.html">graphar::VertexInfo::Impl</a></div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00212">graph_info.cc:212</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a2364ef208346bbd4d468ee78cfc6a1a3"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a2364ef208346bbd4d468ee78cfc6a1a3">graphar::VertexInfo::GetType</a></div><div class="ttdeci">const std::string & GetType() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00290">graph_info.cc:290</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a2a4cc44b7db8784bdb0e9691c7ad0fba"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a2a4cc44b7db8784bdb0e9691c7ad0fba">graphar::VertexInfo::GetPropertyGroup</a></div><div class="ttdeci">std::shared_ptr< PropertyGroup > GetPropertyGroup(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00329">graph_info.cc:329</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a3214a62ac41be6cb53c22894d2926710"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a3214a62ac41be6cb53c22894d2926710">graphar::VertexInfo::GetPathPrefix</a></div><div class="ttdeci">Result< std::string > GetPathPrefix(std::shared_ptr< PropertyGroup > property_group) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00313">graph_info.cc:313</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a34a49ce4905632889db3f969986cbe75"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a34a49ce4905632889db3f969986cbe75">graphar::VertexInfo::GetLabels</a></div><div class="ttdeci">const std::vector< std::string > & GetLabels() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00296">graph_info.cc:296</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a39a607d51da7e73a0fae473e90a61825"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a39a607d51da7e73a0fae473e90a61825">graphar::VertexInfo::GetChunkSize</a></div><div class="ttdeci">IdType GetChunkSize() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00292">graph_info.cc:292</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a47c84aab28674b5250a26c97806f2f48"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a47c84aab28674b5250a26c97806f2f48">graphar::VertexInfo::version</a></div><div class="ttdeci">const std::shared_ptr< const InfoVersion > & version() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00300">graph_info.cc:300</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a4a70be2aa82d5c435b3271ae766bb54d"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a4a70be2aa82d5c435b3271ae766bb54d">graphar::VertexInfo::AddPropertyGroup</a></div><div class="ttdeci">Result< std::shared_ptr< VertexInfo > > AddPropertyGroup(std::shared_ptr< PropertyGroup > property_group) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00399">graph_info.cc:399< [...]
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a5d42bec7d8cdb67f1e04b921f484e328"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a5d42bec7d8cdb67f1e04b921f484e328">graphar::VertexInfo::HasProperty</a></div><div class="ttdeci">bool HasProperty(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00363">graph_info.cc:363</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a64aca915578185662b4429e5ed265322"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a64aca915578185662b4429e5ed265322">graphar::VertexInfo::HasPropertyGroup</a></div><div class="ttdeci">bool HasPropertyGroup(const std::shared_ptr< PropertyGroup > &property_group) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00368">graph_info.cc:368</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a65faa894acf765eae9c7d4e34dff6306"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a65faa894acf765eae9c7d4e34dff6306">graphar::VertexInfo::GetFilePath</a></div><div class="ttdeci">Result< std::string > GetFilePath(std::shared_ptr< PropertyGroup > property_group, IdType chunk_index) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00304">graph_info.cc:304</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a68f7407348b39115e0fa4d44750e9d37"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a68f7407348b39115e0fa4d44750e9d37">graphar::VertexInfo::IsPrimaryKey</a></div><div class="ttdeci">bool IsPrimaryKey(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00347">graph_info.cc:347</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a70d2cb4637d4b2909bd34045a39568af"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a70d2cb4637d4b2909bd34045a39568af">graphar::VertexInfo::IsValidated</a></div><div class="ttdeci">bool IsValidated() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00437">graph_info.cc:437</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a7917824d18f7c84a02859f18b47e77fe"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a7917824d18f7c84a02859f18b47e77fe">graphar::VertexInfo::PropertyGroupNum</a></div><div class="ttdeci">int PropertyGroupNum() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00325">graph_info.cc:325</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a8432977087cbb207f65b91debc240119"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a8432977087cbb207f65b91debc240119">graphar::VertexInfo::RemovePropertyGroup</a></div><div class="ttdeci">Result< std::shared_ptr< VertexInfo > > RemovePropertyGroup(std::shared_ptr< PropertyGroup > property_group) const</div><div class="ttdoc">Removes a property group from the VertexInfo instance and returns a new Vert [...]
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a8fb76a180c2fb8192961a27862f5aa69"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a8fb76a180c2fb8192961a27862f5aa69">graphar::VertexInfo::GetPrefix</a></div><div class="ttdeci">const std::string & GetPrefix() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00294">graph_info.cc:294</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_aad61b0a40a4bef344fad93cb1332d97d"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#aad61b0a40a4bef344fad93cb1332d97d">graphar::VertexInfo::GetVerticesNumFilePath</a></div><div class="ttdeci">Result< std::string > GetVerticesNumFilePath() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00321">graph_info.cc:321</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_acbeedc2afc98e53155bb1f75c9cb465c"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#acbeedc2afc98e53155bb1f75c9cb465c">graphar::VertexInfo::GetPropertyType</a></div><div class="ttdeci">Result< std::shared_ptr< DataType > > GetPropertyType(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00381">graph_info.cc:381</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_acddb12cfcf7c6bfe1f1937f984828312"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#acddb12cfcf7c6bfe1f1937f984828312">graphar::VertexInfo::VertexInfo</a></div><div class="ttdeci">VertexInfo(const std::string &type, IdType chunk_size, const PropertyGroupVector &property_groups, const std::vector< std::string > &labels={}, const std::string &prefix="", std::shared_ptr< const InfoVersio [...]
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_ad6bc3cbb3ed0c5eaa7fd50298e106a78"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#ad6bc3cbb3ed0c5eaa7fd50298e106a78">graphar::VertexInfo::IsNullableKey</a></div><div class="ttdeci">bool IsNullableKey(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00355">graph_info.cc:355</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_adc0a253c371a004324ffae6e8abbdbc7"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#adc0a253c371a004324ffae6e8abbdbc7">graphar::VertexInfo::Dump</a></div><div class="ttdeci">Result< std::string > Dump() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00518">graph_info.cc:518</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_af1ade1caa6e70e4b7ce60cf4df7ac50c"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#af1ade1caa6e70e4b7ce60cf4df7ac50c">graphar::VertexInfo::Load</a></div><div class="ttdeci">static Result< std::shared_ptr< VertexInfo > > Load(std::shared_ptr< Yaml > yaml)</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00451">graph_info.cc:451</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_af6106f8fa90d876a0e97f58c7c39db33"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#af6106f8fa90d876a0e97f58c7c39db33">graphar::VertexInfo::GetPropertyGroupByIndex</a></div><div class="ttdeci">std::shared_ptr< PropertyGroup > GetPropertyGroupByIndex(int index) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00335">graph_info.cc:335</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_afd42b99a43507a9edb1825e7e104d1e7"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#afd42b99a43507a9edb1825e7e104d1e7">graphar::VertexInfo::Save</a></div><div class="ttdeci">Status Save(const std::string &file_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00566">graph_info.cc:566</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_aff9aadd406180802facb14d6a4b5e72e"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#aff9aadd406180802facb14d6a4b5e72e">graphar::VertexInfo::GetPropertyGroups</a></div><div class="ttdeci">const PropertyGroupVector & GetPropertyGroups() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00343">graph_info.cc:343</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_yaml_html_a2fff6ba5eaf3e59b489d015f10013179"><div class="ttname"><a href="classgraphar_1_1_yaml.html#a2fff6ba5eaf3e59b489d015f10013179">graphar::Yaml::Load</a></div><div class="ttdeci">static Result< std::shared_ptr< Yaml > > Load(const std::string &input)</div><div class="ttdef"><b>Definition:</b> <a href="yaml_8cc_source.html#l00034">yaml.cc:34</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!--
diff --git a/docs/cpp/graph__info_8h_source.html b/docs/cpp/graph__info_8h_source.html
index 5855079..3932e4e 100644
--- a/docs/cpp/graph__info_8h_source.html
+++ b/docs/cpp/graph__info_8h_source.html
@@ -190,330 +190,350 @@ $(function() {
<div class="line"><a name="l00207"></a><span class="lineno"> 207</span>  Result<std::shared_ptr<VertexInfo>> <a class="code" href="classgraphar_1_1_vertex_info.html#a4a70be2aa82d5c435b3271ae766bb54d">AddPropertyGroup</a>(</div>
<div class="line"><a name="l00208"></a><span class="lineno"> 208</span>  std::shared_ptr<PropertyGroup> property_group) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00209"></a><span class="lineno"> 209</span>  </div>
-<div class="line"><a name="l00215"></a><span class="lineno"> 215</span>  <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_vertex_info.html#a2364ef208346bbd4d468ee78cfc6a1a3">GetType</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00216"></a><span class="lineno"> 216</span>  </div>
-<div class="line"><a name="l00222"></a><span class="lineno"> 222</span>  IdType <a class="code" href="classgraphar_1_1_vertex_info.html#a39a607d51da7e73a0fae473e90a61825">GetChunkSize</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00223"></a><span class="lineno"> 223</span>  </div>
-<div class="line"><a name="l00229"></a><span class="lineno"> 229</span>  <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_vertex_info.html#a8fb76a180c2fb8192961a27862f5aa69">GetPrefix</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00230"></a><span class="lineno"> 230</span>  </div>
-<div class="line"><a name="l00236"></a><span class="lineno"> 236</span>  <span class="keyword">const</span> std::shared_ptr<const InfoVersion>& <a class="code" href="classgraphar_1_1_vertex_info.html#a47c84aab28674b5250a26c97806f2f48">version</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00237"></a><span class="lineno"> 237</span>  </div>
-<div class="line"><a name="l00242"></a><span class="lineno"> 242</span>  <span class="keyword">const</span> std::vector<std::string>& <a class="code" href="classgraphar_1_1_vertex_info.html#a34a49ce4905632889db3f969986cbe75">GetLabels</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00243"></a><span class="lineno"> 243</span>  </div>
-<div class="line"><a name="l00249"></a><span class="lineno"> 249</span>  <span class="keywordtype">int</span> <a class="code" href="classgraphar_1_1_vertex_info.html#a7917824d18f7c84a02859f18b47e77fe">PropertyGroupNum</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00250"></a><span class="lineno"> 250</span>  </div>
-<div class="line"><a name="l00254"></a><span class="lineno"> 254</span>  <span class="keyword">const</span> PropertyGroupVector& <a class="code" href="classgraphar_1_1_vertex_info.html#aff9aadd406180802facb14d6a4b5e72e">GetPropertyGroups</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00255"></a><span class="lineno"> 255</span>  </div>
-<div class="line"><a name="l00262"></a><span class="lineno"> 262</span>  std::shared_ptr<PropertyGroup> <a class="code" href="classgraphar_1_1_vertex_info.html#a2a4cc44b7db8784bdb0e9691c7ad0fba">GetPropertyGroup</a>(</div>
-<div class="line"><a name="l00263"></a><span class="lineno"> 263</span>  <span class="keyword">const</span> std::string& property_name) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  </div>
-<div class="line"><a name="l00271"></a><span class="lineno"> 271</span>  std::shared_ptr<PropertyGroup> <a class="code" href="classgraphar_1_1_vertex_info.html#af6106f8fa90d876a0e97f58c7c39db33">GetPropertyGroupByIndex</a>(<span class="keywordtype">int</span> index) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  </div>
-<div class="line"><a name="l00280"></a><span class="lineno"> 280</span>  Result<std::shared_ptr<DataType>> <a class="code" href="classgraphar_1_1_vertex_info.html#acbeedc2afc98e53155bb1f75c9cb465c">GetPropertyType</a>(</div>
-<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  <span class="keyword">const</span> std::string& property_name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00217"></a><span class="lineno"> 217</span>  Result<std::shared_ptr<VertexInfo>> <a class="code" href="classgraphar_1_1_vertex_info.html#a8432977087cbb207f65b91debc240119">RemovePropertyGroup</a>(</div>
+<div class="line"><a name="l00218"></a><span class="lineno"> 218</span>  std::shared_ptr<PropertyGroup> property_group) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00219"></a><span class="lineno"> 219</span>  </div>
+<div class="line"><a name="l00225"></a><span class="lineno"> 225</span>  <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_vertex_info.html#a2364ef208346bbd4d468ee78cfc6a1a3">GetType</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00226"></a><span class="lineno"> 226</span>  </div>
+<div class="line"><a name="l00232"></a><span class="lineno"> 232</span>  IdType <a class="code" href="classgraphar_1_1_vertex_info.html#a39a607d51da7e73a0fae473e90a61825">GetChunkSize</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00233"></a><span class="lineno"> 233</span>  </div>
+<div class="line"><a name="l00239"></a><span class="lineno"> 239</span>  <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_vertex_info.html#a8fb76a180c2fb8192961a27862f5aa69">GetPrefix</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00240"></a><span class="lineno"> 240</span>  </div>
+<div class="line"><a name="l00246"></a><span class="lineno"> 246</span>  <span class="keyword">const</span> std::shared_ptr<const InfoVersion>& <a class="code" href="classgraphar_1_1_vertex_info.html#a47c84aab28674b5250a26c97806f2f48">version</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00247"></a><span class="lineno"> 247</span>  </div>
+<div class="line"><a name="l00252"></a><span class="lineno"> 252</span>  <span class="keyword">const</span> std::vector<std::string>& <a class="code" href="classgraphar_1_1_vertex_info.html#a34a49ce4905632889db3f969986cbe75">GetLabels</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00253"></a><span class="lineno"> 253</span>  </div>
+<div class="line"><a name="l00259"></a><span class="lineno"> 259</span>  <span class="keywordtype">int</span> <a class="code" href="classgraphar_1_1_vertex_info.html#a7917824d18f7c84a02859f18b47e77fe">PropertyGroupNum</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00260"></a><span class="lineno"> 260</span>  </div>
+<div class="line"><a name="l00264"></a><span class="lineno"> 264</span>  <span class="keyword">const</span> PropertyGroupVector& <a class="code" href="classgraphar_1_1_vertex_info.html#aff9aadd406180802facb14d6a4b5e72e">GetPropertyGroups</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00265"></a><span class="lineno"> 265</span>  </div>
+<div class="line"><a name="l00272"></a><span class="lineno"> 272</span>  std::shared_ptr<PropertyGroup> <a class="code" href="classgraphar_1_1_vertex_info.html#a2a4cc44b7db8784bdb0e9691c7ad0fba">GetPropertyGroup</a>(</div>
+<div class="line"><a name="l00273"></a><span class="lineno"> 273</span>  <span class="keyword">const</span> std::string& property_name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00274"></a><span class="lineno"> 274</span>  </div>
+<div class="line"><a name="l00281"></a><span class="lineno"> 281</span>  std::shared_ptr<PropertyGroup> <a class="code" href="classgraphar_1_1_vertex_info.html#af6106f8fa90d876a0e97f58c7c39db33">GetPropertyGroupByIndex</a>(<span class="keywordtype">int</span> index) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00282"></a><span class="lineno"> 282</span>  </div>
-<div class="line"><a name="l00283"></a><span class="lineno"> 283</span>  Result<Cardinality> GetPropertyCardinality(</div>
-<div class="line"><a name="l00284"></a><span class="lineno"> 284</span>  <span class="keyword">const</span> std::string& property_name) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_vertex_info.html#a5d42bec7d8cdb67f1e04b921f484e328">HasProperty</a>(<span class="keyword">const</span> std::string& property_name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00290"></a><span class="lineno"> 290</span>  Result<std::shared_ptr<DataType>> <a class="code" href="classgraphar_1_1_vertex_info.html#acbeedc2afc98e53155bb1f75c9cb465c">GetPropertyType</a>(</div>
+<div class="line"><a name="l00291"></a><span class="lineno"> 291</span>  <span class="keyword">const</span> std::string& property_name) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00292"></a><span class="lineno"> 292</span>  </div>
-<div class="line"><a name="l00299"></a><span class="lineno"> 299</span>  <a class="code" href="classgraphar_1_1_status.html">Status</a> <a class="code" href="classgraphar_1_1_vertex_info.html#afd42b99a43507a9edb1825e7e104d1e7">Save</a>(<span class="keyword">const</span> std::string& file_name) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00300"></a><span class="lineno"> 300</span>  </div>
-<div class="line"><a name="l00307"></a><span class="lineno"> 307</span>  Result<std::string> <a class="code" href="classgraphar_1_1_vertex_info.html#adc0a253c371a004324ffae6e8abbdbc7">Dump</a>() <span class="keyword">const</span> noexcept;</div>
-<div class="line"><a name="l00308"></a><span class="lineno"> 308</span>  </div>
-<div class="line"><a name="l00315"></a><span class="lineno"> 315</span>  <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_vertex_info.html#a68f7407348b39115e0fa4d44750e9d37">IsPrimaryKey</a>(<span class="keyword">const</span> std::string& property_name) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00316"></a><span class="lineno"> 316</span>  </div>
-<div class="line"><a name="l00323"></a><span class="lineno"> 323</span>  <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_vertex_info.html#ad6bc3cbb3ed0c5eaa7fd50298e106a78">IsNullableKey</a>(<span class="keyword">const</span> std::string& property_name) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00324"></a><span class="lineno"> 324</span>  </div>
-<div class="line"><a name="l00332"></a><span class="lineno"> 332</span>  <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_vertex_info.html#a64aca915578185662b4429e5ed265322">HasPropertyGroup</a>(</div>
-<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keyword">const</span> std::shared_ptr<PropertyGroup>& property_group) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00293"></a><span class="lineno"> 293</span>  Result<Cardinality> GetPropertyCardinality(</div>
+<div class="line"><a name="l00294"></a><span class="lineno"> 294</span>  <span class="keyword">const</span> std::string& property_name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00301"></a><span class="lineno"> 301</span>  <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_vertex_info.html#a5d42bec7d8cdb67f1e04b921f484e328">HasProperty</a>(<span class="keyword">const</span> std::string& property_name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00302"></a><span class="lineno"> 302</span>  </div>
+<div class="line"><a name="l00309"></a><span class="lineno"> 309</span>  <a class="code" href="classgraphar_1_1_status.html">Status</a> <a class="code" href="classgraphar_1_1_vertex_info.html#afd42b99a43507a9edb1825e7e104d1e7">Save</a>(<span class="keyword">const</span> std::string& file_name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00310"></a><span class="lineno"> 310</span>  </div>
+<div class="line"><a name="l00317"></a><span class="lineno"> 317</span>  Result<std::string> <a class="code" href="classgraphar_1_1_vertex_info.html#adc0a253c371a004324ffae6e8abbdbc7">Dump</a>() <span class="keyword">const</span> noexcept;</div>
+<div class="line"><a name="l00318"></a><span class="lineno"> 318</span>  </div>
+<div class="line"><a name="l00325"></a><span class="lineno"> 325</span>  <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_vertex_info.html#a68f7407348b39115e0fa4d44750e9d37">IsPrimaryKey</a>(<span class="keyword">const</span> std::string& property_name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00326"></a><span class="lineno"> 326</span>  </div>
+<div class="line"><a name="l00333"></a><span class="lineno"> 333</span>  <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_vertex_info.html#ad6bc3cbb3ed0c5eaa7fd50298e106a78">IsNullableKey</a>(<span class="keyword">const</span> std::string& property_name) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00334"></a><span class="lineno"> 334</span>  </div>
-<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  Result<std::string> <a class="code" href="classgraphar_1_1_vertex_info.html#a65faa894acf765eae9c7d4e34dff6306">GetFilePath</a>(std::shared_ptr<PropertyGroup> property_group,</div>
-<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  IdType chunk_index) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00345"></a><span class="lineno"> 345</span>  </div>
-<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  Result<std::string> <a class="code" href="classgraphar_1_1_vertex_info.html#a3214a62ac41be6cb53c22894d2926710">GetPathPrefix</a>(</div>
-<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  std::shared_ptr<PropertyGroup> property_group) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00342"></a><span class="lineno"> 342</span>  <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_vertex_info.html#a64aca915578185662b4429e5ed265322">HasPropertyGroup</a>(</div>
+<div class="line"><a name="l00343"></a><span class="lineno"> 343</span>  <span class="keyword">const</span> std::shared_ptr<PropertyGroup>& property_group) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00344"></a><span class="lineno"> 344</span>  </div>
+<div class="line"><a name="l00353"></a><span class="lineno"> 353</span>  Result<std::string> <a class="code" href="classgraphar_1_1_vertex_info.html#a65faa894acf765eae9c7d4e34dff6306">GetFilePath</a>(std::shared_ptr<PropertyGroup> property_group,</div>
+<div class="line"><a name="l00354"></a><span class="lineno"> 354</span>  IdType chunk_index) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00355"></a><span class="lineno"> 355</span>  </div>
-<div class="line"><a name="l00361"></a><span class="lineno"> 361</span>  Result<std::string> <a class="code" href="classgraphar_1_1_vertex_info.html#aad61b0a40a4bef344fad93cb1332d97d">GetVerticesNumFilePath</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00362"></a><span class="lineno"> 362</span>  </div>
-<div class="line"><a name="l00368"></a><span class="lineno"> 368</span>  <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_vertex_info.html#a70d2cb4637d4b2909bd34045a39568af">IsValidated</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00369"></a><span class="lineno"> 369</span>  </div>
-<div class="line"><a name="l00377"></a><span class="lineno"> 377</span>  <span class="keyword">static</span> Result<std::shared_ptr<VertexInfo>> <a class="code" href="classgraphar_1_1_vertex_info.html#af1ade1caa6e70e4b7ce60cf4df7ac50c">Load</a>(std::shared_ptr<Yaml> yaml);</div>
-<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  </div>
-<div class="line"><a name="l00385"></a><span class="lineno"> 385</span>  <span class="keyword">static</span> Result<std::shared_ptr<VertexInfo>> <a class="code" href="classgraphar_1_1_vertex_info.html#af1ade1caa6e70e4b7ce60cf4df7ac50c">Load</a>(<span class="keyword">const</span> std::string& input);</div>
-<div class="line"><a name="l00386"></a><span class="lineno"> 386</span>  </div>
-<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  <span class="keyword">class </span><a class="code" href="classgraphar_1_1_vertex_info_1_1_impl.html">Impl</a>;</div>
-<div class="line"><a name="l00389"></a><span class="lineno"> 389</span>  std::unique_ptr<Impl> impl_;</div>
-<div class="line"><a name="l00390"></a><span class="lineno"> 390</span> };</div>
-<div class="line"><a name="l00391"></a><span class="lineno"> 391</span>  </div>
-<div class="line"><a name="l00398"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html"> 398</a></span> <span class="keyword">class </span><a class="code" href="classgraphar_1_1_edge_info.html">EdgeInfo</a> {</div>
-<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00417"></a><span class="lineno"> 417</span>  <span class="keyword">explicit</span> <a class="code" href="classgraphar_1_1_edge_info.html#ab3c32f3112dcf08304676eeb95545b55">EdgeInfo</a>(<span class="keyword">const</span> std::string& src_type, <span class="keyword">const</span> std::string& edge_type,</div>
-<div class="line"><a name="l00418"></a><span class="lineno"> 418</span>  <span class="keyword">const</span> std::string& dst_type, IdType chunk_size,</div>
-<div class="line"><a name="l00419"></a><span class="lineno"> 419</span>  IdType src_chunk_size, IdType dst_chunk_size, <span class="keywordtype">bool</span> directed,</div>
-<div class="line"><a name="l00420"></a><span class="lineno"> 420</span>  <span class="keyword">const</span> AdjacentListVector& adjacent_lists,</div>
-<div class="line"><a name="l00421"></a><span class="lineno"> 421</span>  <span class="keyword">const</span> PropertyGroupVector& property_groups,</div>
-<div class="line"><a name="l00422"></a><span class="lineno"> 422</span>  <span class="keyword">const</span> std::string& prefix = <span class="stringliteral">""</span>,</div>
-<div class="line"><a name="l00423"></a><span class="lineno"> 423</span>  std::shared_ptr<const InfoVersion> <a class="code" href="classgraphar_1_1_edge_info.html#a9440bef05f4fa689662f26a9ef0117c1">version</a> = <span class="keyword">nullptr</span>);</div>
-<div class="line"><a name="l00424"></a><span class="lineno"> 424</span>  </div>
-<div class="line"><a name="l00425"></a><span class="lineno"> 425</span>  ~<a class="code" href="classgraphar_1_1_edge_info.html">EdgeInfo</a>();</div>
-<div class="line"><a name="l00426"></a><span class="lineno"> 426</span>  </div>
-<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  Result<std::shared_ptr<EdgeInfo>> <a class="code" href="classgraphar_1_1_edge_info.html#a6e5b4fdc98d8399564396fb63955c62a">AddAdjacentList</a>(</div>
-<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  std::shared_ptr<AdjacentList> adj_list) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00363"></a><span class="lineno"> 363</span>  Result<std::string> <a class="code" href="classgraphar_1_1_vertex_info.html#a3214a62ac41be6cb53c22894d2926710">GetPathPrefix</a>(</div>
+<div class="line"><a name="l00364"></a><span class="lineno"> 364</span>  std::shared_ptr<PropertyGroup> property_group) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00365"></a><span class="lineno"> 365</span>  </div>
+<div class="line"><a name="l00371"></a><span class="lineno"> 371</span>  Result<std::string> <a class="code" href="classgraphar_1_1_vertex_info.html#aad61b0a40a4bef344fad93cb1332d97d">GetVerticesNumFilePath</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00372"></a><span class="lineno"> 372</span>  </div>
+<div class="line"><a name="l00378"></a><span class="lineno"> 378</span>  <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_vertex_info.html#a70d2cb4637d4b2909bd34045a39568af">IsValidated</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00379"></a><span class="lineno"> 379</span>  </div>
+<div class="line"><a name="l00387"></a><span class="lineno"> 387</span>  <span class="keyword">static</span> Result<std::shared_ptr<VertexInfo>> <a class="code" href="classgraphar_1_1_vertex_info.html#af1ade1caa6e70e4b7ce60cf4df7ac50c">Load</a>(std::shared_ptr<Yaml> yaml);</div>
+<div class="line"><a name="l00388"></a><span class="lineno"> 388</span>  </div>
+<div class="line"><a name="l00395"></a><span class="lineno"> 395</span>  <span class="keyword">static</span> Result<std::shared_ptr<VertexInfo>> <a class="code" href="classgraphar_1_1_vertex_info.html#af1ade1caa6e70e4b7ce60cf4df7ac50c">Load</a>(<span class="keyword">const</span> std::string& input);</div>
+<div class="line"><a name="l00396"></a><span class="lineno"> 396</span>  </div>
+<div class="line"><a name="l00397"></a><span class="lineno"> 397</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00398"></a><span class="lineno"> 398</span>  <span class="keyword">class </span><a class="code" href="classgraphar_1_1_vertex_info_1_1_impl.html">Impl</a>;</div>
+<div class="line"><a name="l00399"></a><span class="lineno"> 399</span>  std::unique_ptr<Impl> impl_;</div>
+<div class="line"><a name="l00400"></a><span class="lineno"> 400</span> };</div>
+<div class="line"><a name="l00401"></a><span class="lineno"> 401</span>  </div>
+<div class="line"><a name="l00408"></a><span class="lineno"><a class="line" href="classgraphar_1_1_edge_info.html"> 408</a></span> <span class="keyword">class </span><a class="code" href="classgraphar_1_1_edge_info.html">EdgeInfo</a> {</div>
+<div class="line"><a name="l00409"></a><span class="lineno"> 409</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00427"></a><span class="lineno"> 427</span>  <span class="keyword">explicit</span> <a class="code" href="classgraphar_1_1_edge_info.html#ab3c32f3112dcf08304676eeb95545b55">EdgeInfo</a>(<span class="keyword">const</span> std::string& src_type, <span class="keyword">const</span> std::string& edge_type,</div>
+<div class="line"><a name="l00428"></a><span class="lineno"> 428</span>  <span class="keyword">const</span> std::string& dst_type, IdType chunk_size,</div>
+<div class="line"><a name="l00429"></a><span class="lineno"> 429</span>  IdType src_chunk_size, IdType dst_chunk_size, <span class="keywordtype">bool</span> directed,</div>
+<div class="line"><a name="l00430"></a><span class="lineno"> 430</span>  <span class="keyword">const</span> AdjacentListVector& adjacent_lists,</div>
+<div class="line"><a name="l00431"></a><span class="lineno"> 431</span>  <span class="keyword">const</span> PropertyGroupVector& property_groups,</div>
+<div class="line"><a name="l00432"></a><span class="lineno"> 432</span>  <span class="keyword">const</span> std::string& prefix = <span class="stringliteral">""</span>,</div>
+<div class="line"><a name="l00433"></a><span class="lineno"> 433</span>  std::shared_ptr<const InfoVersion> <a class="code" href="classgraphar_1_1_edge_info.html#a9440bef05f4fa689662f26a9ef0117c1">version</a> = <span class="keyword">nullptr</span>);</div>
+<div class="line"><a name="l00434"></a><span class="lineno"> 434</span>  </div>
+<div class="line"><a name="l00435"></a><span class="lineno"> 435</span>  ~<a class="code" href="classgraphar_1_1_edge_info.html">EdgeInfo</a>();</div>
<div class="line"><a name="l00436"></a><span class="lineno"> 436</span>  </div>
-<div class="line"><a name="l00442"></a><span class="lineno"> 442</span>  Result<std::shared_ptr<EdgeInfo>> <a class="code" href="classgraphar_1_1_edge_info.html#a9620f838addfdcb892b30e80e2cc4239">AddPropertyGroup</a>(</div>
-<div class="line"><a name="l00443"></a><span class="lineno"> 443</span>  std::shared_ptr<PropertyGroup> property_group) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  </div>
-<div class="line"><a name="l00449"></a><span class="lineno"> 449</span>  <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_edge_info.html#a994023f50f2f952cc1361b0f9928dec4">GetSrcType</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00450"></a><span class="lineno"> 450</span>  </div>
-<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_edge_info.html#a03c9b4f4b0edcf47f2e5746e8f9f6db0">GetEdgeType</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00444"></a><span class="lineno"> 444</span>  Result<std::shared_ptr<EdgeInfo>> <a class="code" href="classgraphar_1_1_edge_info.html#a6e5b4fdc98d8399564396fb63955c62a">AddAdjacentList</a>(</div>
+<div class="line"><a name="l00445"></a><span class="lineno"> 445</span>  std::shared_ptr<AdjacentList> adj_list) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00446"></a><span class="lineno"> 446</span>  </div>
+<div class="line"><a name="l00454"></a><span class="lineno"> 454</span>  Result<std::shared_ptr<EdgeInfo>> <a class="code" href="classgraphar_1_1_edge_info.html#a7db36496a4cf0eb517b463de5caa125f">RemoveAdjacentList</a>(</div>
+<div class="line"><a name="l00455"></a><span class="lineno"> 455</span>  std::shared_ptr<AdjacentList> adj_list) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00456"></a><span class="lineno"> 456</span>  </div>
-<div class="line"><a name="l00461"></a><span class="lineno"> 461</span>  <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_edge_info.html#ac03180737adf29c79196bbe729b3c929">GetDstType</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  </div>
-<div class="line"><a name="l00467"></a><span class="lineno"> 467</span>  IdType <a class="code" href="classgraphar_1_1_edge_info.html#a62c2300185c0655df9b44db39b0a399b">GetChunkSize</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00468"></a><span class="lineno"> 468</span>  </div>
-<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  IdType <a class="code" href="classgraphar_1_1_edge_info.html#ac07ad975e8ecbdb779038388e3def59e">GetSrcChunkSize</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00462"></a><span class="lineno"> 462</span>  Result<std::shared_ptr<EdgeInfo>> <a class="code" href="classgraphar_1_1_edge_info.html#a9620f838addfdcb892b30e80e2cc4239">AddPropertyGroup</a>(</div>
+<div class="line"><a name="l00463"></a><span class="lineno"> 463</span>  std::shared_ptr<PropertyGroup> property_group) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00464"></a><span class="lineno"> 464</span>  </div>
+<div class="line"><a name="l00472"></a><span class="lineno"> 472</span>  Result<std::shared_ptr<EdgeInfo>> <a class="code" href="classgraphar_1_1_edge_info.html#a264853429b84060bbe36c671d5bc8963">RemovePropertyGroup</a>(</div>
+<div class="line"><a name="l00473"></a><span class="lineno"> 473</span>  std::shared_ptr<PropertyGroup> property_group) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00474"></a><span class="lineno"> 474</span>  </div>
-<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  IdType <a class="code" href="classgraphar_1_1_edge_info.html#abe0fc6672a3fbb5fbd0b5e8775cb8dac">GetDstChunkSize</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00479"></a><span class="lineno"> 479</span>  <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_edge_info.html#a994023f50f2f952cc1361b0f9928dec4">GetSrcType</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00480"></a><span class="lineno"> 480</span>  </div>
-<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_edge_info.html#a4ec8810a54411f9a8aba35b2faf29acb">GetPrefix</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00485"></a><span class="lineno"> 485</span>  <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_edge_info.html#a03c9b4f4b0edcf47f2e5746e8f9f6db0">GetEdgeType</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00486"></a><span class="lineno"> 486</span>  </div>
-<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#aad31af465d41c026a35c20828915922e">IsDirected</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00491"></a><span class="lineno"> 491</span>  <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_edge_info.html#ac03180737adf29c79196bbe729b3c929">GetDstType</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00492"></a><span class="lineno"> 492</span>  </div>
-<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  <span class="keyword">const</span> std::shared_ptr<const InfoVersion>& <a class="code" href="classgraphar_1_1_edge_info.html#a9440bef05f4fa689662f26a9ef0117c1">version</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00497"></a><span class="lineno"> 497</span>  IdType <a class="code" href="classgraphar_1_1_edge_info.html#a62c2300185c0655df9b44db39b0a399b">GetChunkSize</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00498"></a><span class="lineno"> 498</span>  </div>
-<div class="line"><a name="l00506"></a><span class="lineno"> 506</span>  <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#aaa6633dc8136cec806cbcf42c2cf136d">HasAdjacentListType</a>(AdjListType adj_list_type) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00507"></a><span class="lineno"> 507</span>  </div>
-<div class="line"><a name="l00514"></a><span class="lineno"> 514</span>  <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#a69182fa8d45bb0e7d4ac230adb1239b2">HasProperty</a>(<span class="keyword">const</span> std::string& property_name) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  </div>
-<div class="line"><a name="l00519"></a><span class="lineno"> 519</span>  <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#a857bb686e5d7f579ac0e2a889a53f829">HasPropertyGroup</a>(</div>
-<div class="line"><a name="l00520"></a><span class="lineno"> 520</span>  <span class="keyword">const</span> std::shared_ptr<PropertyGroup>& property_group) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  </div>
-<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  std::shared_ptr<AdjacentList> GetAdjacentList(</div>
-<div class="line"><a name="l00523"></a><span class="lineno"> 523</span>  AdjListType adj_list_type) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00524"></a><span class="lineno"> 524</span>  </div>
-<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  <span class="keywordtype">int</span> <a class="code" href="classgraphar_1_1_edge_info.html#aee914f2c4adf773c048daed0e93dbe32">PropertyGroupNum</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00529"></a><span class="lineno"> 529</span>  </div>
-<div class="line"><a name="l00534"></a><span class="lineno"> 534</span>  <span class="keyword">const</span> PropertyGroupVector& <a class="code" href="classgraphar_1_1_edge_info.html#ad56107001dcbadac71ae8063cd25b58f">GetPropertyGroups</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00535"></a><span class="lineno"> 535</span>  </div>
-<div class="line"><a name="l00542"></a><span class="lineno"> 542</span>  std::shared_ptr<PropertyGroup> <a class="code" href="classgraphar_1_1_edge_info.html#aec1bdf018d5b209f722dbf293ef14dd6">GetPropertyGroup</a>(</div>
-<div class="line"><a name="l00543"></a><span class="lineno"> 543</span>  <span class="keyword">const</span> std::string& property) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  </div>
-<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  std::shared_ptr<PropertyGroup> <a class="code" href="classgraphar_1_1_edge_info.html#a8551959066b19885b9ce15262b5cb3db">GetPropertyGroupByIndex</a>(<span class="keywordtype">int</span> index) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  </div>
-<div class="line"><a name="l00560"></a><span class="lineno"> 560</span>  Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#aec1a622c83b14d62b26e7143850a3cf1">GetVerticesNumFilePath</a>(AdjListType adj_list_type) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00561"></a><span class="lineno"> 561</span>  </div>
-<div class="line"><a name="l00570"></a><span class="lineno"> 570</span>  Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#a4f2c7fedc68dce8f1c7fb90eede9906f">GetEdgesNumFilePath</a>(IdType vertex_chunk_index,</div>
-<div class="line"><a name="l00571"></a><span class="lineno"> 571</span>  AdjListType adj_list_type) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  </div>
-<div class="line"><a name="l00580"></a><span class="lineno"> 580</span>  Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#a0eb9f0ff282c73f5c90a8c3940f1929e">GetAdjListFilePath</a>(IdType vertex_chunk_index,</div>
-<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  IdType edge_chunk_index,</div>
-<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  AdjListType adj_list_type) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00583"></a><span class="lineno"> 583</span>  </div>
-<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#ab39f63f0aa7284c510a7e0d61b0942d3">GetAdjListPathPrefix</a>(AdjListType adj_list_type) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00592"></a><span class="lineno"> 592</span>  </div>
-<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#a615fe3ed78f35af9aef598287cb89a27">GetAdjListOffsetFilePath</a>(IdType vertex_chunk_index,</div>
-<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  AdjListType adj_list_type) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00503"></a><span class="lineno"> 503</span>  IdType <a class="code" href="classgraphar_1_1_edge_info.html#ac07ad975e8ecbdb779038388e3def59e">GetSrcChunkSize</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00504"></a><span class="lineno"> 504</span>  </div>
+<div class="line"><a name="l00509"></a><span class="lineno"> 509</span>  IdType <a class="code" href="classgraphar_1_1_edge_info.html#abe0fc6672a3fbb5fbd0b5e8775cb8dac">GetDstChunkSize</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00510"></a><span class="lineno"> 510</span>  </div>
+<div class="line"><a name="l00515"></a><span class="lineno"> 515</span>  <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_edge_info.html#a4ec8810a54411f9a8aba35b2faf29acb">GetPrefix</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00516"></a><span class="lineno"> 516</span>  </div>
+<div class="line"><a name="l00521"></a><span class="lineno"> 521</span>  <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#aad31af465d41c026a35c20828915922e">IsDirected</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00522"></a><span class="lineno"> 522</span>  </div>
+<div class="line"><a name="l00527"></a><span class="lineno"> 527</span>  <span class="keyword">const</span> std::shared_ptr<const InfoVersion>& <a class="code" href="classgraphar_1_1_edge_info.html#a9440bef05f4fa689662f26a9ef0117c1">version</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00528"></a><span class="lineno"> 528</span>  </div>
+<div class="line"><a name="l00536"></a><span class="lineno"> 536</span>  <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#aaa6633dc8136cec806cbcf42c2cf136d">HasAdjacentListType</a>(AdjListType adj_list_type) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00537"></a><span class="lineno"> 537</span>  </div>
+<div class="line"><a name="l00544"></a><span class="lineno"> 544</span>  <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#a69182fa8d45bb0e7d4ac230adb1239b2">HasProperty</a>(<span class="keyword">const</span> std::string& property_name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00545"></a><span class="lineno"> 545</span>  </div>
+<div class="line"><a name="l00549"></a><span class="lineno"> 549</span>  <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#a857bb686e5d7f579ac0e2a889a53f829">HasPropertyGroup</a>(</div>
+<div class="line"><a name="l00550"></a><span class="lineno"> 550</span>  <span class="keyword">const</span> std::shared_ptr<PropertyGroup>& property_group) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00551"></a><span class="lineno"> 551</span>  </div>
+<div class="line"><a name="l00552"></a><span class="lineno"> 552</span>  std::shared_ptr<AdjacentList> GetAdjacentList(</div>
+<div class="line"><a name="l00553"></a><span class="lineno"> 553</span>  AdjListType adj_list_type) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00554"></a><span class="lineno"> 554</span>  </div>
+<div class="line"><a name="l00558"></a><span class="lineno"> 558</span>  <span class="keywordtype">int</span> <a class="code" href="classgraphar_1_1_edge_info.html#aee914f2c4adf773c048daed0e93dbe32">PropertyGroupNum</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00559"></a><span class="lineno"> 559</span>  </div>
+<div class="line"><a name="l00564"></a><span class="lineno"> 564</span>  <span class="keyword">const</span> PropertyGroupVector& <a class="code" href="classgraphar_1_1_edge_info.html#ad56107001dcbadac71ae8063cd25b58f">GetPropertyGroups</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00565"></a><span class="lineno"> 565</span>  </div>
+<div class="line"><a name="l00572"></a><span class="lineno"> 572</span>  std::shared_ptr<PropertyGroup> <a class="code" href="classgraphar_1_1_edge_info.html#aec1bdf018d5b209f722dbf293ef14dd6">GetPropertyGroup</a>(</div>
+<div class="line"><a name="l00573"></a><span class="lineno"> 573</span>  <span class="keyword">const</span> std::string& property) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00574"></a><span class="lineno"> 574</span>  </div>
+<div class="line"><a name="l00581"></a><span class="lineno"> 581</span>  std::shared_ptr<PropertyGroup> <a class="code" href="classgraphar_1_1_edge_info.html#a8551959066b19885b9ce15262b5cb3db">GetPropertyGroupByIndex</a>(<span class="keywordtype">int</span> index) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00582"></a><span class="lineno"> 582</span>  </div>
+<div class="line"><a name="l00590"></a><span class="lineno"> 590</span>  Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#aec1a622c83b14d62b26e7143850a3cf1">GetVerticesNumFilePath</a>(AdjListType adj_list_type) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00591"></a><span class="lineno"> 591</span>  </div>
+<div class="line"><a name="l00600"></a><span class="lineno"> 600</span>  Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#a4f2c7fedc68dce8f1c7fb90eede9906f">GetEdgesNumFilePath</a>(IdType vertex_chunk_index,</div>
+<div class="line"><a name="l00601"></a><span class="lineno"> 601</span>  AdjListType adj_list_type) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00602"></a><span class="lineno"> 602</span>  </div>
-<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#aab2032669c9e9dcf11275fdd4cb2c1fa">GetOffsetPathPrefix</a>(AdjListType adj_list_type) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  </div>
-<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#abfcba5aed61cdfaf91f98e649b370722">GetPropertyFilePath</a>(</div>
-<div class="line"><a name="l00623"></a><span class="lineno"> 623</span>  <span class="keyword">const</span> std::shared_ptr<PropertyGroup>& property_group,</div>
-<div class="line"><a name="l00624"></a><span class="lineno"> 624</span>  AdjListType adj_list_type, IdType vertex_chunk_index,</div>
-<div class="line"><a name="l00625"></a><span class="lineno"> 625</span>  IdType edge_chunk_index) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00626"></a><span class="lineno"> 626</span>  </div>
-<div class="line"><a name="l00635"></a><span class="lineno"> 635</span>  Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#a55004cedc30fcb0fa94adf246dcc2702">GetPropertyGroupPathPrefix</a>(</div>
-<div class="line"><a name="l00636"></a><span class="lineno"> 636</span>  <span class="keyword">const</span> std::shared_ptr<PropertyGroup>& property_group,</div>
-<div class="line"><a name="l00637"></a><span class="lineno"> 637</span>  AdjListType adj_list_type) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00638"></a><span class="lineno"> 638</span>  </div>
-<div class="line"><a name="l00646"></a><span class="lineno"> 646</span>  Result<std::shared_ptr<DataType>> <a class="code" href="classgraphar_1_1_edge_info.html#a37fa8536c627a5e5f529e8ee6d3d7506">GetPropertyType</a>(</div>
-<div class="line"><a name="l00647"></a><span class="lineno"> 647</span>  <span class="keyword">const</span> std::string& property_name) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#a5bd430ba21f5dfb230b978e03c4020ef">IsPrimaryKey</a>(<span class="keyword">const</span> std::string& property_name) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  </div>
-<div class="line"><a name="l00662"></a><span class="lineno"> 662</span>  <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#a80b00d930f22870d00331a639c9cc26e">IsNullableKey</a>(<span class="keyword">const</span> std::string& property_name) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00663"></a><span class="lineno"> 663</span>  </div>
-<div class="line"><a name="l00670"></a><span class="lineno"> 670</span>  <a class="code" href="classgraphar_1_1_status.html">Status</a> <a class="code" href="classgraphar_1_1_edge_info.html#a1e95f986bd8c5191f438705b195191e3">Save</a>(<span class="keyword">const</span> std::string& file_name) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00671"></a><span class="lineno"> 671</span>  </div>
-<div class="line"><a name="l00678"></a><span class="lineno"> 678</span>  Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#a80004230ddfbc892995732ea59993a27">Dump</a>() <span class="keyword">const</span> noexcept;</div>
-<div class="line"><a name="l00679"></a><span class="lineno"> 679</span>  </div>
-<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#a3dca57726506375cab4fc43fdef2914f">IsValidated</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00686"></a><span class="lineno"> 686</span>  </div>
-<div class="line"><a name="l00688"></a><span class="lineno"> 688</span>  <span class="keyword">static</span> Result<std::shared_ptr<EdgeInfo>> <a class="code" href="classgraphar_1_1_edge_info.html#a0ac67e1cf3b3fa79b6fcbc054869d0e5">Load</a>(std::shared_ptr<Yaml> yaml);</div>
-<div class="line"><a name="l00689"></a><span class="lineno"> 689</span>  </div>
-<div class="line"><a name="l00696"></a><span class="lineno"> 696</span>  <span class="keyword">static</span> Result<std::shared_ptr<EdgeInfo>> <a class="code" href="classgraphar_1_1_edge_info.html#a0ac67e1cf3b3fa79b6fcbc054869d0e5">Load</a>(<span class="keyword">const</span> std::string& input);</div>
-<div class="line"><a name="l00697"></a><span class="lineno"> 697</span>  </div>
-<div class="line"><a name="l00698"></a><span class="lineno"> 698</span>  <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00699"></a><span class="lineno"> 699</span>  <span class="keyword">class </span><a class="code" href="classgraphar_1_1_edge_info_1_1_impl.html">Impl</a>;</div>
-<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  std::unique_ptr<Impl> impl_;</div>
-<div class="line"><a name="l00701"></a><span class="lineno"> 701</span> };</div>
-<div class="line"><a name="l00702"></a><span class="lineno"> 702</span>  </div>
-<div class="line"><a name="l00706"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html"> 706</a></span> <span class="keyword">class </span><a class="code" href="classgraphar_1_1_graph_info.html">GraphInfo</a> {</div>
-<div class="line"><a name="l00707"></a><span class="lineno"> 707</span>  <span class="keyword">public</span>:</div>
-<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  <span class="keyword">explicit</span> <a class="code" href="classgraphar_1_1_graph_info.html#a1b473deea923f7b2a57c339dc7e51192">GraphInfo</a>(</div>
-<div class="line"><a name="l00720"></a><span class="lineno"> 720</span>  <span class="keyword">const</span> std::string& graph_name, VertexInfoVector vertex_infos,</div>
-<div class="line"><a name="l00721"></a><span class="lineno"> 721</span>  EdgeInfoVector edge_infos, <span class="keyword">const</span> std::vector<std::string>& labels = {},</div>
-<div class="line"><a name="l00722"></a><span class="lineno"> 722</span>  <span class="keyword">const</span> std::string& prefix = <span class="stringliteral">"./"</span>,</div>
-<div class="line"><a name="l00723"></a><span class="lineno"> 723</span>  std::shared_ptr<const InfoVersion> <a class="code" href="classgraphar_1_1_graph_info.html#aeb68a7550c63365d8093136601a3aeee">version</a> = <span class="keyword">nullptr</span>,</div>
-<div class="line"><a name="l00724"></a><span class="lineno"> 724</span>  <span class="keyword">const</span> std::unordered_map<std::string, std::string>& extra_info = {});</div>
-<div class="line"><a name="l00725"></a><span class="lineno"> 725</span>  </div>
-<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  ~<a class="code" href="classgraphar_1_1_graph_info.html">GraphInfo</a>();</div>
+<div class="line"><a name="l00610"></a><span class="lineno"> 610</span>  Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#a0eb9f0ff282c73f5c90a8c3940f1929e">GetAdjListFilePath</a>(IdType vertex_chunk_index,</div>
+<div class="line"><a name="l00611"></a><span class="lineno"> 611</span>  IdType edge_chunk_index,</div>
+<div class="line"><a name="l00612"></a><span class="lineno"> 612</span>  AdjListType adj_list_type) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00613"></a><span class="lineno"> 613</span>  </div>
+<div class="line"><a name="l00621"></a><span class="lineno"> 621</span>  Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#ab39f63f0aa7284c510a7e0d61b0942d3">GetAdjListPathPrefix</a>(AdjListType adj_list_type) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00622"></a><span class="lineno"> 622</span>  </div>
+<div class="line"><a name="l00630"></a><span class="lineno"> 630</span>  Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#a615fe3ed78f35af9aef598287cb89a27">GetAdjListOffsetFilePath</a>(IdType vertex_chunk_index,</div>
+<div class="line"><a name="l00631"></a><span class="lineno"> 631</span>  AdjListType adj_list_type) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00632"></a><span class="lineno"> 632</span>  </div>
+<div class="line"><a name="l00640"></a><span class="lineno"> 640</span>  Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#aab2032669c9e9dcf11275fdd4cb2c1fa">GetOffsetPathPrefix</a>(AdjListType adj_list_type) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00641"></a><span class="lineno"> 641</span>  </div>
+<div class="line"><a name="l00652"></a><span class="lineno"> 652</span>  Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#abfcba5aed61cdfaf91f98e649b370722">GetPropertyFilePath</a>(</div>
+<div class="line"><a name="l00653"></a><span class="lineno"> 653</span>  <span class="keyword">const</span> std::shared_ptr<PropertyGroup>& property_group,</div>
+<div class="line"><a name="l00654"></a><span class="lineno"> 654</span>  AdjListType adj_list_type, IdType vertex_chunk_index,</div>
+<div class="line"><a name="l00655"></a><span class="lineno"> 655</span>  IdType edge_chunk_index) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00656"></a><span class="lineno"> 656</span>  </div>
+<div class="line"><a name="l00665"></a><span class="lineno"> 665</span>  Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#a55004cedc30fcb0fa94adf246dcc2702">GetPropertyGroupPathPrefix</a>(</div>
+<div class="line"><a name="l00666"></a><span class="lineno"> 666</span>  <span class="keyword">const</span> std::shared_ptr<PropertyGroup>& property_group,</div>
+<div class="line"><a name="l00667"></a><span class="lineno"> 667</span>  AdjListType adj_list_type) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00668"></a><span class="lineno"> 668</span>  </div>
+<div class="line"><a name="l00676"></a><span class="lineno"> 676</span>  Result<std::shared_ptr<DataType>> <a class="code" href="classgraphar_1_1_edge_info.html#a37fa8536c627a5e5f529e8ee6d3d7506">GetPropertyType</a>(</div>
+<div class="line"><a name="l00677"></a><span class="lineno"> 677</span>  <span class="keyword">const</span> std::string& property_name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00684"></a><span class="lineno"> 684</span>  <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#a5bd430ba21f5dfb230b978e03c4020ef">IsPrimaryKey</a>(<span class="keyword">const</span> std::string& property_name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00685"></a><span class="lineno"> 685</span>  </div>
+<div class="line"><a name="l00692"></a><span class="lineno"> 692</span>  <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#a80b00d930f22870d00331a639c9cc26e">IsNullableKey</a>(<span class="keyword">const</span> std::string& property_name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00693"></a><span class="lineno"> 693</span>  </div>
+<div class="line"><a name="l00700"></a><span class="lineno"> 700</span>  <a class="code" href="classgraphar_1_1_status.html">Status</a> <a class="code" href="classgraphar_1_1_edge_info.html#a1e95f986bd8c5191f438705b195191e3">Save</a>(<span class="keyword">const</span> std::string& file_name) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00701"></a><span class="lineno"> 701</span>  </div>
+<div class="line"><a name="l00708"></a><span class="lineno"> 708</span>  Result<std::string> <a class="code" href="classgraphar_1_1_edge_info.html#a80004230ddfbc892995732ea59993a27">Dump</a>() <span class="keyword">const</span> noexcept;</div>
+<div class="line"><a name="l00709"></a><span class="lineno"> 709</span>  </div>
+<div class="line"><a name="l00715"></a><span class="lineno"> 715</span>  <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_edge_info.html#a3dca57726506375cab4fc43fdef2914f">IsValidated</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00716"></a><span class="lineno"> 716</span>  </div>
+<div class="line"><a name="l00718"></a><span class="lineno"> 718</span>  <span class="keyword">static</span> Result<std::shared_ptr<EdgeInfo>> <a class="code" href="classgraphar_1_1_edge_info.html#a0ac67e1cf3b3fa79b6fcbc054869d0e5">Load</a>(std::shared_ptr<Yaml> yaml);</div>
+<div class="line"><a name="l00719"></a><span class="lineno"> 719</span>  </div>
+<div class="line"><a name="l00726"></a><span class="lineno"> 726</span>  <span class="keyword">static</span> Result<std::shared_ptr<EdgeInfo>> <a class="code" href="classgraphar_1_1_edge_info.html#a0ac67e1cf3b3fa79b6fcbc054869d0e5">Load</a>(<span class="keyword">const</span> std::string& input);</div>
<div class="line"><a name="l00727"></a><span class="lineno"> 727</span>  </div>
-<div class="line"><a name="l00734"></a><span class="lineno"> 734</span>  <span class="keyword">static</span> Result<std::shared_ptr<GraphInfo>> <a class="code" href="classgraphar_1_1_graph_info.html#a63dbd61d6575fe783b3287f391f651ed">Load</a>(<span class="keyword">const</span> std::string& path);</div>
-<div class="line"><a name="l00735"></a><span class="lineno"> 735</span>  </div>
-<div class="line"><a name="l00743"></a><span class="lineno"> 743</span>  <span class="keyword">static</span> Result<std::shared_ptr<GraphInfo>> <a class="code" href="classgraphar_1_1_graph_info.html#a63dbd61d6575fe783b3287f391f651ed">Load</a>(</div>
-<div class="line"><a name="l00744"></a><span class="lineno"> 744</span>  <span class="keyword">const</span> std::string& input, <span class="keyword">const</span> std::string& relative_path);</div>
-<div class="line"><a name="l00745"></a><span class="lineno"> 745</span>  </div>
-<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  Result<std::shared_ptr<GraphInfo>> <a class="code" href="classgraphar_1_1_graph_info.html#a44e38c74dc765a56f8f0d200774d8180">AddVertex</a>(</div>
-<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  std::shared_ptr<VertexInfo> vertex_info) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  </div>
-<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  Result<std::shared_ptr<GraphInfo>> <a class="code" href="classgraphar_1_1_graph_info.html#a8fdf1ff0ec57e3ca2e66dd4366e390aa">AddEdge</a>(</div>
-<div class="line"><a name="l00766"></a><span class="lineno"> 766</span>  std::shared_ptr<EdgeInfo> edge_info) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00767"></a><span class="lineno"> 767</span>  </div>
-<div class="line"><a name="l00772"></a><span class="lineno"> 772</span>  <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_graph_info.html#ab10cb1ceaa01a74d44c1076c43c2fcce">GetName</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  </div>
-<div class="line"><a name="l00778"></a><span class="lineno"> 778</span>  <span class="keyword">const</span> std::vector<std::string>& <a class="code" href="classgraphar_1_1_graph_info.html#a8b057bb6c3cfd897b0fb31ecceea40c9">GetLabels</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00779"></a><span class="lineno"> 779</span>  </div>
-<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_graph_info.html#a53eef3d15830bea15de0bbbe7e11e208">GetPrefix</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  </div>
-<div class="line"><a name="l00791"></a><span class="lineno"> 791</span>  <span class="keyword">const</span> std::shared_ptr<const InfoVersion>& <a class="code" href="classgraphar_1_1_graph_info.html#aeb68a7550c63365d8093136601a3aeee">version</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00792"></a><span class="lineno"> 792</span>  </div>
-<div class="line"><a name="l00798"></a><span class="lineno"> 798</span>  <span class="keyword">const</span> std::unordered_map<std::string, std::string>& <a class="code" href="classgraphar_1_1_graph_info.html#aa0856ec7ecc8d8d1aac2f7cd51cfe136">GetExtraInfo</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00799"></a><span class="lineno"> 799</span>  </div>
-<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  std::shared_ptr<VertexInfo> <a class="code" href="classgraphar_1_1_graph_info.html#a8799b4b1a2163507a9ddd8f910d4a9d3">GetVertexInfo</a>(<span class="keyword">const</span> std::string& type) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  </div>
-<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  std::shared_ptr<EdgeInfo> <a class="code" href="classgraphar_1_1_graph_info.html#a7e660710d2e1bd244b5d28bdc68aeab2">GetEdgeInfo</a>(<span class="keyword">const</span> std::string& src_type,</div>
-<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  <span class="keyword">const</span> std::string& edge_type,</div>
-<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  <span class="keyword">const</span> std::string& dst_type) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00818"></a><span class="lineno"> 818</span>  </div>
-<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  <span class="keywordtype">int</span> <a class="code" href="classgraphar_1_1_graph_info.html#a0f03270a6ee9c084dab10421cdf69cd5">GetVertexInfoIndex</a>(<span class="keyword">const</span> std::string& type) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00728"></a><span class="lineno"> 728</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00729"></a><span class="lineno"> 729</span>  <span class="keyword">class </span><a class="code" href="classgraphar_1_1_edge_info_1_1_impl.html">Impl</a>;</div>
+<div class="line"><a name="l00730"></a><span class="lineno"> 730</span>  std::unique_ptr<Impl> impl_;</div>
+<div class="line"><a name="l00731"></a><span class="lineno"> 731</span> };</div>
+<div class="line"><a name="l00732"></a><span class="lineno"> 732</span>  </div>
+<div class="line"><a name="l00736"></a><span class="lineno"><a class="line" href="classgraphar_1_1_graph_info.html"> 736</a></span> <span class="keyword">class </span><a class="code" href="classgraphar_1_1_graph_info.html">GraphInfo</a> {</div>
+<div class="line"><a name="l00737"></a><span class="lineno"> 737</span>  <span class="keyword">public</span>:</div>
+<div class="line"><a name="l00749"></a><span class="lineno"> 749</span>  <span class="keyword">explicit</span> <a class="code" href="classgraphar_1_1_graph_info.html#a1b473deea923f7b2a57c339dc7e51192">GraphInfo</a>(</div>
+<div class="line"><a name="l00750"></a><span class="lineno"> 750</span>  <span class="keyword">const</span> std::string& graph_name, VertexInfoVector vertex_infos,</div>
+<div class="line"><a name="l00751"></a><span class="lineno"> 751</span>  EdgeInfoVector edge_infos, <span class="keyword">const</span> std::vector<std::string>& labels = {},</div>
+<div class="line"><a name="l00752"></a><span class="lineno"> 752</span>  <span class="keyword">const</span> std::string& prefix = <span class="stringliteral">"./"</span>,</div>
+<div class="line"><a name="l00753"></a><span class="lineno"> 753</span>  std::shared_ptr<const InfoVersion> <a class="code" href="classgraphar_1_1_graph_info.html#aeb68a7550c63365d8093136601a3aeee">version</a> = <span class="keyword">nullptr</span>,</div>
+<div class="line"><a name="l00754"></a><span class="lineno"> 754</span>  <span class="keyword">const</span> std::unordered_map<std::string, std::string>& extra_info = {});</div>
+<div class="line"><a name="l00755"></a><span class="lineno"> 755</span>  </div>
+<div class="line"><a name="l00756"></a><span class="lineno"> 756</span>  ~<a class="code" href="classgraphar_1_1_graph_info.html">GraphInfo</a>();</div>
+<div class="line"><a name="l00757"></a><span class="lineno"> 757</span>  </div>
+<div class="line"><a name="l00764"></a><span class="lineno"> 764</span>  <span class="keyword">static</span> Result<std::shared_ptr<GraphInfo>> <a class="code" href="classgraphar_1_1_graph_info.html#a63dbd61d6575fe783b3287f391f651ed">Load</a>(<span class="keyword">const</span> std::string& path);</div>
+<div class="line"><a name="l00765"></a><span class="lineno"> 765</span>  </div>
+<div class="line"><a name="l00773"></a><span class="lineno"> 773</span>  <span class="keyword">static</span> Result<std::shared_ptr<GraphInfo>> <a class="code" href="classgraphar_1_1_graph_info.html#a63dbd61d6575fe783b3287f391f651ed">Load</a>(</div>
+<div class="line"><a name="l00774"></a><span class="lineno"> 774</span>  <span class="keyword">const</span> std::string& input, <span class="keyword">const</span> std::string& relative_path);</div>
+<div class="line"><a name="l00775"></a><span class="lineno"> 775</span>  </div>
+<div class="line"><a name="l00784"></a><span class="lineno"> 784</span>  Result<std::shared_ptr<GraphInfo>> <a class="code" href="classgraphar_1_1_graph_info.html#a44e38c74dc765a56f8f0d200774d8180">AddVertex</a>(</div>
+<div class="line"><a name="l00785"></a><span class="lineno"> 785</span>  std::shared_ptr<VertexInfo> vertex_info) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00786"></a><span class="lineno"> 786</span>  </div>
+<div class="line"><a name="l00794"></a><span class="lineno"> 794</span>  Result<std::shared_ptr<GraphInfo>> <a class="code" href="classgraphar_1_1_graph_info.html#ad64a71966ca197ae14ea21ff8787b769">RemoveVertex</a>(</div>
+<div class="line"><a name="l00795"></a><span class="lineno"> 795</span>  std::shared_ptr<VertexInfo> vertex_info) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00796"></a><span class="lineno"> 796</span>  </div>
+<div class="line"><a name="l00805"></a><span class="lineno"> 805</span>  Result<std::shared_ptr<GraphInfo>> <a class="code" href="classgraphar_1_1_graph_info.html#a8fdf1ff0ec57e3ca2e66dd4366e390aa">AddEdge</a>(</div>
+<div class="line"><a name="l00806"></a><span class="lineno"> 806</span>  std::shared_ptr<EdgeInfo> edge_info) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00807"></a><span class="lineno"> 807</span>  </div>
+<div class="line"><a name="l00815"></a><span class="lineno"> 815</span>  Result<std::shared_ptr<GraphInfo>> <a class="code" href="classgraphar_1_1_graph_info.html#acc0e018222ae59e749a52b3678e6529a">RemoveEdge</a>(</div>
+<div class="line"><a name="l00816"></a><span class="lineno"> 816</span>  std::shared_ptr<EdgeInfo> edge_info) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00817"></a><span class="lineno"> 817</span>  </div>
+<div class="line"><a name="l00822"></a><span class="lineno"> 822</span>  <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_graph_info.html#ab10cb1ceaa01a74d44c1076c43c2fcce">GetName</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00823"></a><span class="lineno"> 823</span>  </div>
-<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  <span class="keywordtype">int</span> <a class="code" href="classgraphar_1_1_graph_info.html#aa2ca1614d499facc76927b5de733b503">GetEdgeInfoIndex</a>(<span class="keyword">const</span> std::string& src_type,</div>
-<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  <span class="keyword">const</span> std::string& edge_type,</div>
-<div class="line"><a name="l00830"></a><span class="lineno"> 830</span>  <span class="keyword">const</span> std::string& dst_type) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00831"></a><span class="lineno"> 831</span>  </div>
-<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  <span class="keywordtype">int</span> <a class="code" href="classgraphar_1_1_graph_info.html#aa384328a58c9138b5b77ea6172199d07">VertexInfoNum</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00836"></a><span class="lineno"> 836</span>  </div>
-<div class="line"><a name="l00840"></a><span class="lineno"> 840</span>  <span class="keywordtype">int</span> <a class="code" href="classgraphar_1_1_graph_info.html#a814f2cdeecf58a308ab886a085991fc4">EdgeInfoNum</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  </div>
-<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  <span class="keyword">const</span> std::shared_ptr<VertexInfo> <a class="code" href="classgraphar_1_1_graph_info.html#a3a94e3d0f64a1b4d1b672676940c389f">GetVertexInfoByIndex</a>(<span class="keywordtype">int</span> index) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00828"></a><span class="lineno"> 828</span>  <span class="keyword">const</span> std::vector<std::string>& <a class="code" href="classgraphar_1_1_graph_info.html#a8b057bb6c3cfd897b0fb31ecceea40c9">GetLabels</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00829"></a><span class="lineno"> 829</span>  </div>
+<div class="line"><a name="l00834"></a><span class="lineno"> 834</span>  <span class="keyword">const</span> std::string& <a class="code" href="classgraphar_1_1_graph_info.html#a53eef3d15830bea15de0bbbe7e11e208">GetPrefix</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00835"></a><span class="lineno"> 835</span>  </div>
+<div class="line"><a name="l00841"></a><span class="lineno"> 841</span>  <span class="keyword">const</span> std::shared_ptr<const InfoVersion>& <a class="code" href="classgraphar_1_1_graph_info.html#aeb68a7550c63365d8093136601a3aeee">version</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00842"></a><span class="lineno"> 842</span>  </div>
+<div class="line"><a name="l00848"></a><span class="lineno"> 848</span>  <span class="keyword">const</span> std::unordered_map<std::string, std::string>& <a class="code" href="classgraphar_1_1_graph_info.html#aa0856ec7ecc8d8d1aac2f7cd51cfe136">GetExtraInfo</a>() <span class="keyword">const</span>;</div>
<div class="line"><a name="l00849"></a><span class="lineno"> 849</span>  </div>
-<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  <span class="keyword">const</span> std::shared_ptr<EdgeInfo> <a class="code" href="classgraphar_1_1_graph_info.html#afd61923bd9ff1f5329b1c93ebbcd0278">GetEdgeInfoByIndex</a>(<span class="keywordtype">int</span> index) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00857"></a><span class="lineno"> 857</span>  </div>
-<div class="line"><a name="l00863"></a><span class="lineno"> 863</span>  <span class="keyword">const</span> VertexInfoVector& <a class="code" href="classgraphar_1_1_graph_info.html#a9393d2797ff5d77f66691f84f15007c4">GetVertexInfos</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00864"></a><span class="lineno"> 864</span>  </div>
-<div class="line"><a name="l00870"></a><span class="lineno"> 870</span>  <span class="keyword">const</span> EdgeInfoVector& <a class="code" href="classgraphar_1_1_graph_info.html#a14dbabaec827198ee822070c1077a570">GetEdgeInfos</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00871"></a><span class="lineno"> 871</span>  </div>
-<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  <a class="code" href="classgraphar_1_1_status.html">Status</a> <a class="code" href="classgraphar_1_1_graph_info.html#a339f08f5a1427aadc91d30d41dccced3">Save</a>(<span class="keyword">const</span> std::string& path) <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  </div>
-<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>  Result<std::string> <a class="code" href="classgraphar_1_1_graph_info.html#a71646413e64620af1ca83f404e7150ea">Dump</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00887"></a><span class="lineno"> 887</span>  </div>
-<div class="line"><a name="l00893"></a><span class="lineno"> 893</span>  <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_graph_info.html#a6e848c7015e3b7d4706ff1ac2ffa6dcd">IsValidated</a>() <span class="keyword">const</span>;</div>
-<div class="line"><a name="l00894"></a><span class="lineno"> 894</span>  </div>
-<div class="line"><a name="l00895"></a><span class="lineno"> 895</span>  <span class="keyword">private</span>:</div>
-<div class="line"><a name="l00896"></a><span class="lineno"> 896</span>  <span class="keyword">class </span><a class="code" href="classgraphar_1_1_graph_info_1_1_impl.html">Impl</a>;</div>
-<div class="line"><a name="l00897"></a><span class="lineno"> 897</span>  std::unique_ptr<Impl> impl_;</div>
-<div class="line"><a name="l00898"></a><span class="lineno"> 898</span> };</div>
+<div class="line"><a name="l00855"></a><span class="lineno"> 855</span>  std::shared_ptr<VertexInfo> <a class="code" href="classgraphar_1_1_graph_info.html#a8799b4b1a2163507a9ddd8f910d4a9d3">GetVertexInfo</a>(<span class="keyword">const</span> std::string& type) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00856"></a><span class="lineno"> 856</span>  </div>
+<div class="line"><a name="l00865"></a><span class="lineno"> 865</span>  std::shared_ptr<EdgeInfo> <a class="code" href="classgraphar_1_1_graph_info.html#a7e660710d2e1bd244b5d28bdc68aeab2">GetEdgeInfo</a>(<span class="keyword">const</span> std::string& src_type,</div>
+<div class="line"><a name="l00866"></a><span class="lineno"> 866</span>  <span class="keyword">const</span> std::string& edge_type,</div>
+<div class="line"><a name="l00867"></a><span class="lineno"> 867</span>  <span class="keyword">const</span> std::string& dst_type) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00868"></a><span class="lineno"> 868</span>  </div>
+<div class="line"><a name="l00872"></a><span class="lineno"> 872</span>  <span class="keywordtype">int</span> <a class="code" href="classgraphar_1_1_graph_info.html#a0f03270a6ee9c084dab10421cdf69cd5">GetVertexInfoIndex</a>(<span class="keyword">const</span> std::string& type) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00873"></a><span class="lineno"> 873</span>  </div>
+<div class="line"><a name="l00878"></a><span class="lineno"> 878</span>  <span class="keywordtype">int</span> <a class="code" href="classgraphar_1_1_graph_info.html#aa2ca1614d499facc76927b5de733b503">GetEdgeInfoIndex</a>(<span class="keyword">const</span> std::string& src_type,</div>
+<div class="line"><a name="l00879"></a><span class="lineno"> 879</span>  <span class="keyword">const</span> std::string& edge_type,</div>
+<div class="line"><a name="l00880"></a><span class="lineno"> 880</span>  <span class="keyword">const</span> std::string& dst_type) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00881"></a><span class="lineno"> 881</span>  </div>
+<div class="line"><a name="l00885"></a><span class="lineno"> 885</span>  <span class="keywordtype">int</span> <a class="code" href="classgraphar_1_1_graph_info.html#aa384328a58c9138b5b77ea6172199d07">VertexInfoNum</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00886"></a><span class="lineno"> 886</span>  </div>
+<div class="line"><a name="l00890"></a><span class="lineno"> 890</span>  <span class="keywordtype">int</span> <a class="code" href="classgraphar_1_1_graph_info.html#a814f2cdeecf58a308ab886a085991fc4">EdgeInfoNum</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00891"></a><span class="lineno"> 891</span>  </div>
+<div class="line"><a name="l00898"></a><span class="lineno"> 898</span>  <span class="keyword">const</span> std::shared_ptr<VertexInfo> <a class="code" href="classgraphar_1_1_graph_info.html#a3a94e3d0f64a1b4d1b672676940c389f">GetVertexInfoByIndex</a>(<span class="keywordtype">int</span> index) <span class="keyword">const</span>;</div>
<div class="line"><a name="l00899"></a><span class="lineno"> 899</span>  </div>
-<div class="line"><a name="l00900"></a><span class="lineno"> 900</span> } <span class="comment">// namespace graphar</span></div>
+<div class="line"><a name="l00906"></a><span class="lineno"> 906</span>  <span class="keyword">const</span> std::shared_ptr<EdgeInfo> <a class="code" href="classgraphar_1_1_graph_info.html#afd61923bd9ff1f5329b1c93ebbcd0278">GetEdgeInfoByIndex</a>(<span class="keywordtype">int</span> index) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00907"></a><span class="lineno"> 907</span>  </div>
+<div class="line"><a name="l00913"></a><span class="lineno"> 913</span>  <span class="keyword">const</span> VertexInfoVector& <a class="code" href="classgraphar_1_1_graph_info.html#a9393d2797ff5d77f66691f84f15007c4">GetVertexInfos</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00914"></a><span class="lineno"> 914</span>  </div>
+<div class="line"><a name="l00920"></a><span class="lineno"> 920</span>  <span class="keyword">const</span> EdgeInfoVector& <a class="code" href="classgraphar_1_1_graph_info.html#a14dbabaec827198ee822070c1077a570">GetEdgeInfos</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00921"></a><span class="lineno"> 921</span>  </div>
+<div class="line"><a name="l00928"></a><span class="lineno"> 928</span>  <a class="code" href="classgraphar_1_1_status.html">Status</a> <a class="code" href="classgraphar_1_1_graph_info.html#a339f08f5a1427aadc91d30d41dccced3">Save</a>(<span class="keyword">const</span> std::string& path) <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00929"></a><span class="lineno"> 929</span>  </div>
+<div class="line"><a name="l00936"></a><span class="lineno"> 936</span>  Result<std::string> <a class="code" href="classgraphar_1_1_graph_info.html#a71646413e64620af1ca83f404e7150ea">Dump</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00937"></a><span class="lineno"> 937</span>  </div>
+<div class="line"><a name="l00943"></a><span class="lineno"> 943</span>  <span class="keywordtype">bool</span> <a class="code" href="classgraphar_1_1_graph_info.html#a6e848c7015e3b7d4706ff1ac2ffa6dcd">IsValidated</a>() <span class="keyword">const</span>;</div>
+<div class="line"><a name="l00944"></a><span class="lineno"> 944</span>  </div>
+<div class="line"><a name="l00945"></a><span class="lineno"> 945</span>  <span class="keyword">private</span>:</div>
+<div class="line"><a name="l00946"></a><span class="lineno"> 946</span>  <span class="keyword">class </span><a class="code" href="classgraphar_1_1_graph_info_1_1_impl.html">Impl</a>;</div>
+<div class="line"><a name="l00947"></a><span class="lineno"> 947</span>  std::unique_ptr<Impl> impl_;</div>
+<div class="line"><a name="l00948"></a><span class="lineno"> 948</span> };</div>
+<div class="line"><a name="l00949"></a><span class="lineno"> 949</span>  </div>
+<div class="line"><a name="l00950"></a><span class="lineno"> 950</span> } <span class="comment">// namespace graphar</span></div>
<div class="ttc" id="aclassgraphar_1_1_adjacent_list_html"><div class="ttname"><a href="classgraphar_1_1_adjacent_list.html">graphar::AdjacentList</a></div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8h_source.html#l00127">graph_info.h:127</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_adjacent_list_html_a277e5b1c9356f7bdcfe891e043459a3a"><div class="ttname"><a href="classgraphar_1_1_adjacent_list.html#a277e5b1c9356f7bdcfe891e043459a3a">graphar::AdjacentList::GetPrefix</a></div><div class="ttdeci">const std::string & GetPrefix() const</div><div class="ttdoc">Get the prefix of adjacent list.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8h_source.html#l00160">graph_info.h:160</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_adjacent_list_html_a2b9f1829c1a5a7cfff7ee96ec7ac4bed"><div class="ttname"><a href="classgraphar_1_1_adjacent_list.html#a2b9f1829c1a5a7cfff7ee96ec7ac4bed">graphar::AdjacentList::GetFileType</a></div><div class="ttdeci">FileType GetFileType() const</div><div class="ttdoc">Get the file type of adjacent list.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8h_source.html#l00153">graph_info.h:153</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_adjacent_list_html_a3d4b038f759cceb75cd38c30414c444b"><div class="ttname"><a href="classgraphar_1_1_adjacent_list.html#a3d4b038f759cceb75cd38c30414c444b">graphar::AdjacentList::GetType</a></div><div class="ttdeci">AdjListType GetType() const</div><div class="ttdoc">Get the type of adjacent list.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8h_source.html#l00146">graph_info.h:146</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_adjacent_list_html_a592ba95843997b321f5545e950f03a57"><div class="ttname"><a href="classgraphar_1_1_adjacent_list.html#a592ba95843997b321f5545e950f03a57">graphar::AdjacentList::IsValidated</a></div><div class="ttdeci">bool IsValidated() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00176">graph_info.cc:176</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_adjacent_list_html_ab31cbdbaae74305f7bf3ffbd76c93efc"><div class="ttname"><a href="classgraphar_1_1_adjacent_list.html#ab31cbdbaae74305f7bf3ffbd76c93efc">graphar::AdjacentList::AdjacentList</a></div><div class="ttdeci">AdjacentList(AdjListType type, FileType file_type, const std::string &prefix="")</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00168">graph_info.cc:168</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_1_1_impl_html"><div class="ttname"><a href="classgraphar_1_1_edge_info_1_1_impl.html">graphar::EdgeInfo::Impl</a></div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00537">graph_info.cc:537</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html"><div class="ttname"><a href="classgraphar_1_1_edge_info.html">graphar::EdgeInfo</a></div><div class="ttdoc">EdgeInfo is a class to describe the edge information, including the source vertex type,...</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8h_source.html#l00398">graph_info.h:398</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a03c9b4f4b0edcf47f2e5746e8f9f6db0"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a03c9b4f4b0edcf47f2e5746e8f9f6db0">graphar::EdgeInfo::GetEdgeType</a></div><div class="ttdeci">const std::string & GetEdgeType() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00658">graph_info.cc:658</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a0ac67e1cf3b3fa79b6fcbc054869d0e5"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a0ac67e1cf3b3fa79b6fcbc054869d0e5">graphar::EdgeInfo::Load</a></div><div class="ttdeci">static Result< std::shared_ptr< EdgeInfo > > Load(std::shared_ptr< Yaml > yaml)</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00886">graph_info.cc:886</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a0eb9f0ff282c73f5c90a8c3940f1929e"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a0eb9f0ff282c73f5c90a8c3940f1929e">graphar::EdgeInfo::GetAdjListFilePath</a></div><div class="ttdeci">Result< std::string > GetAdjListFilePath(IdType vertex_chunk_index, IdType edge_chunk_index, AdjListType adj_list_type) const</div><div class="ttdoc">Get the file path of adj list topology chunk.</div><div class="ttdef"><b>Definition: [...]
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a1e95f986bd8c5191f438705b195191e3"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a1e95f986bd8c5191f438705b195191e3">graphar::EdgeInfo::Save</a></div><div class="ttdeci">Status Save(const std::string &file_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01027">graph_info.cc:1027</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a37fa8536c627a5e5f529e8ee6d3d7506"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a37fa8536c627a5e5f529e8ee6d3d7506">graphar::EdgeInfo::GetPropertyType</a></div><div class="ttdeci">Result< std::shared_ptr< DataType > > GetPropertyType(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00807">graph_info.cc:807</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a3dca57726506375cab4fc43fdef2914f"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a3dca57726506375cab4fc43fdef2914f">graphar::EdgeInfo::IsValidated</a></div><div class="ttdeci">bool IsValidated() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00867">graph_info.cc:867</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a4ec8810a54411f9a8aba35b2faf29acb"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a4ec8810a54411f9a8aba35b2faf29acb">graphar::EdgeInfo::GetPrefix</a></div><div class="ttdeci">const std::string & GetPrefix() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00668">graph_info.cc:668</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a4f2c7fedc68dce8f1c7fb90eede9906f"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a4f2c7fedc68dce8f1c7fb90eede9906f">graphar::EdgeInfo::GetEdgesNumFilePath</a></div><div class="ttdeci">Result< std::string > GetEdgesNumFilePath(IdType vertex_chunk_index, AdjListType adj_list_type) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00738">graph_info.cc:738</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a55004cedc30fcb0fa94adf246dcc2702"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a55004cedc30fcb0fa94adf246dcc2702">graphar::EdgeInfo::GetPropertyGroupPathPrefix</a></div><div class="ttdeci">Result< std::string > GetPropertyGroupPathPrefix(const std::shared_ptr< PropertyGroup > &property_group, AdjListType adj_list_type) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.htm [...]
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a5bd430ba21f5dfb230b978e03c4020ef"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a5bd430ba21f5dfb230b978e03c4020ef">graphar::EdgeInfo::IsPrimaryKey</a></div><div class="ttdeci">bool IsPrimaryKey(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00816">graph_info.cc:816</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a615fe3ed78f35af9aef598287cb89a27"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a615fe3ed78f35af9aef598287cb89a27">graphar::EdgeInfo::GetAdjListOffsetFilePath</a></div><div class="ttdeci">Result< std::string > GetAdjListOffsetFilePath(IdType vertex_chunk_index, AdjListType adj_list_type) const</div><div class="ttdoc">Get the adjacency list offset chunk file path of vertex chunk the offset chunks is aligned with t [...]
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a62c2300185c0655df9b44db39b0a399b"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a62c2300185c0655df9b44db39b0a399b">graphar::EdgeInfo::GetChunkSize</a></div><div class="ttdeci">IdType GetChunkSize() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00662">graph_info.cc:662</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a69182fa8d45bb0e7d4ac230adb1239b2"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a69182fa8d45bb0e7d4ac230adb1239b2">graphar::EdgeInfo::HasProperty</a></div><div class="ttdeci">bool HasProperty(const std::string &property_name) const</div><div class="ttdoc">Returns whether the edge info contains the given property.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00681">graph_info.cc:6 [...]
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a6e5b4fdc98d8399564396fb63955c62a"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a6e5b4fdc98d8399564396fb63955c62a">graphar::EdgeInfo::AddAdjacentList</a></div><div class="ttdeci">Result< std::shared_ptr< EdgeInfo > > AddAdjacentList(std::shared_ptr< AdjacentList > adj_list) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00832">graph_info.cc:832</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a80004230ddfbc892995732ea59993a27"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a80004230ddfbc892995732ea59993a27">graphar::EdgeInfo::Dump</a></div><div class="ttdeci">Result< std::string > Dump() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00972">graph_info.cc:972</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a80b00d930f22870d00331a639c9cc26e"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a80b00d930f22870d00331a639c9cc26e">graphar::EdgeInfo::IsNullableKey</a></div><div class="ttdeci">bool IsNullableKey(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00824">graph_info.cc:824</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a8551959066b19885b9ce15262b5cb3db"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a8551959066b19885b9ce15262b5cb3db">graphar::EdgeInfo::GetPropertyGroupByIndex</a></div><div class="ttdeci">std::shared_ptr< PropertyGroup > GetPropertyGroupByIndex(int index) const</div><div class="ttdoc">Get the property group at the specified index.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l007 [...]
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a857bb686e5d7f579ac0e2a889a53f829"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a857bb686e5d7f579ac0e2a889a53f829">graphar::EdgeInfo::HasPropertyGroup</a></div><div class="ttdeci">bool HasPropertyGroup(const std::shared_ptr< PropertyGroup > &property_group) const</div><div class="ttdoc">Returns whether the edge info contains the given property group.</div><div class="ttdef"><b>Definition:</b> <a href="graph__ [...]
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a9440bef05f4fa689662f26a9ef0117c1"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a9440bef05f4fa689662f26a9ef0117c1">graphar::EdgeInfo::version</a></div><div class="ttdeci">const std::shared_ptr< const InfoVersion > & version() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00672">graph_info.cc:672</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a9620f838addfdcb892b30e80e2cc4239"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a9620f838addfdcb892b30e80e2cc4239">graphar::EdgeInfo::AddPropertyGroup</a></div><div class="ttdeci">Result< std::shared_ptr< EdgeInfo > > AddPropertyGroup(std::shared_ptr< PropertyGroup > property_group) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00848">graph_info.cc:848</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a994023f50f2f952cc1361b0f9928dec4"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a994023f50f2f952cc1361b0f9928dec4">graphar::EdgeInfo::GetSrcType</a></div><div class="ttdeci">const std::string & GetSrcType() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00656">graph_info.cc:656</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_aaa6633dc8136cec806cbcf42c2cf136d"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#aaa6633dc8136cec806cbcf42c2cf136d">graphar::EdgeInfo::HasAdjacentListType</a></div><div class="ttdeci">bool HasAdjacentListType(AdjListType adj_list_type) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00676">graph_info.cc:676</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_aab2032669c9e9dcf11275fdd4cb2c1fa"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#aab2032669c9e9dcf11275fdd4cb2c1fa">graphar::EdgeInfo::GetOffsetPathPrefix</a></div><div class="ttdeci">Result< std::string > GetOffsetPathPrefix(AdjListType adj_list_type) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00772">graph_info.cc:772</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_aad31af465d41c026a35c20828915922e"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#aad31af465d41c026a35c20828915922e">graphar::EdgeInfo::IsDirected</a></div><div class="ttdeci">bool IsDirected() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00670">graph_info.cc:670</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_ab39f63f0aa7284c510a7e0d61b0942d3"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#ab39f63f0aa7284c510a7e0d61b0942d3">graphar::EdgeInfo::GetAdjListPathPrefix</a></div><div class="ttdeci">Result< std::string > GetAdjListPathPrefix(AdjListType adj_list_type) const</div><div class="ttdoc">Get the path prefix of the adjacency list topology chunk for the given adjacency list type.</div><div class="ttdef"><b>Definition:</ [...]
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_ab3c32f3112dcf08304676eeb95545b55"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#ab3c32f3112dcf08304676eeb95545b55">graphar::EdgeInfo::EdgeInfo</a></div><div class="ttdeci">EdgeInfo(const std::string &src_type, const std::string &edge_type, const std::string &dst_type, IdType chunk_size, IdType src_chunk_size, IdType dst_chunk_size, bool directed, const AdjacentListVector &adjacent_lists, const PropertyG [...]
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_abe0fc6672a3fbb5fbd0b5e8775cb8dac"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#abe0fc6672a3fbb5fbd0b5e8775cb8dac">graphar::EdgeInfo::GetDstChunkSize</a></div><div class="ttdeci">IdType GetDstChunkSize() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00666">graph_info.cc:666</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_abfcba5aed61cdfaf91f98e649b370722"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#abfcba5aed61cdfaf91f98e649b370722">graphar::EdgeInfo::GetPropertyFilePath</a></div><div class="ttdeci">Result< std::string > GetPropertyFilePath(const std::shared_ptr< PropertyGroup > &property_group, AdjListType adj_list_type, IdType vertex_chunk_index, IdType edge_chunk_index) const</div><div class="ttdoc">Get the chunk fi [...]
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_ac03180737adf29c79196bbe729b3c929"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#ac03180737adf29c79196bbe729b3c929">graphar::EdgeInfo::GetDstType</a></div><div class="ttdeci">const std::string & GetDstType() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00660">graph_info.cc:660</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_ac07ad975e8ecbdb779038388e3def59e"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#ac07ad975e8ecbdb779038388e3def59e">graphar::EdgeInfo::GetSrcChunkSize</a></div><div class="ttdeci">IdType GetSrcChunkSize() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00664">graph_info.cc:664</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_ad56107001dcbadac71ae8063cd25b58f"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#ad56107001dcbadac71ae8063cd25b58f">graphar::EdgeInfo::GetPropertyGroups</a></div><div class="ttdeci">const PropertyGroupVector & GetPropertyGroups() const</div><div class="ttdoc">Get the property groups.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00712">graph_info.cc:712</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_aec1a622c83b14d62b26e7143850a3cf1"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#aec1a622c83b14d62b26e7143850a3cf1">graphar::EdgeInfo::GetVerticesNumFilePath</a></div><div class="ttdeci">Result< std::string > GetVerticesNumFilePath(AdjListType adj_list_type) const</div><div class="ttdoc">Get the file path for the number of vertices.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l0 [...]
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_aec1bdf018d5b209f722dbf293ef14dd6"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#aec1bdf018d5b209f722dbf293ef14dd6">graphar::EdgeInfo::GetPropertyGroup</a></div><div class="ttdeci">std::shared_ptr< PropertyGroup > GetPropertyGroup(const std::string &property) const</div><div class="ttdoc">Get the property group containing the given property.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_s [...]
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html_aee914f2c4adf773c048daed0e93dbe32"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#aee914f2c4adf773c048daed0e93dbe32">graphar::EdgeInfo::PropertyGroupNum</a></div><div class="ttdeci">int PropertyGroupNum() const</div><div class="ttdoc">Get the number of property groups.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00708">graph_info.cc:708</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_graph_info_1_1_impl_html"><div class="ttname"><a href="classgraphar_1_1_graph_info_1_1_impl.html">graphar::GraphInfo::Impl</a></div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01124">graph_info.cc:1124</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html"><div class="ttname"><a href="classgraphar_1_1_graph_info.html">graphar::GraphInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8h_source.html#l00706">graph_info.h:706</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a0f03270a6ee9c084dab10421cdf69cd5"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a0f03270a6ee9c084dab10421cdf69cd5">graphar::GraphInfo::GetVertexInfoIndex</a></div><div class="ttdeci">int GetVertexInfoIndex(const std::string &type) const</div><div class="ttdoc">Get the vertex info index with the given type.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01217">graph_info.cc:1217</ [...]
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a14dbabaec827198ee822070c1077a570"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a14dbabaec827198ee822070c1077a570">graphar::GraphInfo::GetEdgeInfos</a></div><div class="ttdeci">const EdgeInfoVector & GetEdgeInfos() const</div><div class="ttdoc">Get the edge infos of graph info.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01262">graph_info.cc:1262</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a1b473deea923f7b2a57c339dc7e51192"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a1b473deea923f7b2a57c339dc7e51192">graphar::GraphInfo::GraphInfo</a></div><div class="ttdeci">GraphInfo(const std::string &graph_name, VertexInfoVector vertex_infos, EdgeInfoVector edge_infos, const std::vector< std::string > &labels={}, const std::string &prefix="./", std::shared_ptr< const InfoVersion > [...]
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a339f08f5a1427aadc91d30d41dccced3"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a339f08f5a1427aadc91d30d41dccced3">graphar::GraphInfo::Save</a></div><div class="ttdeci">Status Save(const std::string &path) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01384">graph_info.cc:1384</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a3a94e3d0f64a1b4d1b672676940c389f"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a3a94e3d0f64a1b4d1b672676940c389f">graphar::GraphInfo::GetVertexInfoByIndex</a></div><div class="ttdeci">const std::shared_ptr< VertexInfo > GetVertexInfoByIndex(int index) const</div><div class="ttdoc">Get the vertex info at the specified index.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01243" [...]
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a44e38c74dc765a56f8f0d200774d8180"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a44e38c74dc765a56f8f0d200774d8180">graphar::GraphInfo::AddVertex</a></div><div class="ttdeci">Result< std::shared_ptr< GraphInfo > > AddVertex(std::shared_ptr< VertexInfo > vertex_info) const</div><div class="ttdoc">Adds a vertex info to the GraphInfo instance and returns a new GraphInfo.</div><div class="ttdef"><b>Defin [...]
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a53eef3d15830bea15de0bbbe7e11e208"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a53eef3d15830bea15de0bbbe7e11e208">graphar::GraphInfo::GetPrefix</a></div><div class="ttdeci">const std::string & GetPrefix() const</div><div class="ttdoc">Get the absolute path prefix of the chunk files.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01200">graph_info.cc:1200</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a63dbd61d6575fe783b3287f391f651ed"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a63dbd61d6575fe783b3287f391f651ed">graphar::GraphInfo::Load</a></div><div class="ttdeci">static Result< std::shared_ptr< GraphInfo > > Load(const std::string &path)</div><div class="ttdoc">Loads the input file as a GraphInfo instance.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01308">g [...]
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a6e848c7015e3b7d4706ff1ac2ffa6dcd"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a6e848c7015e3b7d4706ff1ac2ffa6dcd">graphar::GraphInfo::IsValidated</a></div><div class="ttdeci">bool IsValidated() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01266">graph_info.cc:1266</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a71646413e64620af1ca83f404e7150ea"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a71646413e64620af1ca83f404e7150ea">graphar::GraphInfo::Dump</a></div><div class="ttdeci">Result< std::string > Dump() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01334">graph_info.cc:1334</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a7e660710d2e1bd244b5d28bdc68aeab2"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a7e660710d2e1bd244b5d28bdc68aeab2">graphar::GraphInfo::GetEdgeInfo</a></div><div class="ttdeci">std::shared_ptr< EdgeInfo > GetEdgeInfo(const std::string &src_type, const std::string &edge_type, const std::string &dst_type) const</div><div class="ttdoc">Get the edge info with the given source vertex type, edge type, and [...]
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a814f2cdeecf58a308ab886a085991fc4"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a814f2cdeecf58a308ab886a085991fc4">graphar::GraphInfo::EdgeInfoNum</a></div><div class="ttdeci">int EdgeInfoNum() const</div><div class="ttdoc">Get the number of edge infos.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01239">graph_info.cc:1239</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a8799b4b1a2163507a9ddd8f910d4a9d3"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a8799b4b1a2163507a9ddd8f910d4a9d3">graphar::GraphInfo::GetVertexInfo</a></div><div class="ttdeci">std::shared_ptr< VertexInfo > GetVertexInfo(const std::string &type) const</div><div class="ttdoc">Get the vertex info with the given type.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01211">grap [...]
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a8b057bb6c3cfd897b0fb31ecceea40c9"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a8b057bb6c3cfd897b0fb31ecceea40c9">graphar::GraphInfo::GetLabels</a></div><div class="ttdeci">const std::vector< std::string > & GetLabels() const</div><div class="ttdoc">Get the vertex labels of the graph.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01196">graph_info.cc:1196</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a8fdf1ff0ec57e3ca2e66dd4366e390aa"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a8fdf1ff0ec57e3ca2e66dd4366e390aa">graphar::GraphInfo::AddEdge</a></div><div class="ttdeci">Result< std::shared_ptr< GraphInfo > > AddEdge(std::shared_ptr< EdgeInfo > edge_info) const</div><div class="ttdoc">Adds an edge info to the GraphInfo instance and returns a new GraphInfo.</div><div class="ttdef"><b>Definition:</b [...]
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a9393d2797ff5d77f66691f84f15007c4"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a9393d2797ff5d77f66691f84f15007c4">graphar::GraphInfo::GetVertexInfos</a></div><div class="ttdeci">const VertexInfoVector & GetVertexInfos() const</div><div class="ttdoc">Get the vertex infos of graph info.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01258">graph_info.cc:1258</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_aa0856ec7ecc8d8d1aac2f7cd51cfe136"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#aa0856ec7ecc8d8d1aac2f7cd51cfe136">graphar::GraphInfo::GetExtraInfo</a></div><div class="ttdeci">const std::unordered_map< std::string, std::string > & GetExtraInfo() const</div><div class="ttdoc">Get the extra metadata of the graph info object.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l012 [...]
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_aa2ca1614d499facc76927b5de733b503"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#aa2ca1614d499facc76927b5de733b503">graphar::GraphInfo::GetEdgeInfoIndex</a></div><div class="ttdeci">int GetEdgeInfoIndex(const std::string &src_type, const std::string &edge_type, const std::string &dst_type) const</div><div class="ttdoc">Get the edge info index with the given source vertex type, edge type, and destination ty [...]
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_aa384328a58c9138b5b77ea6172199d07"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#aa384328a58c9138b5b77ea6172199d07">graphar::GraphInfo::VertexInfoNum</a></div><div class="ttdeci">int VertexInfoNum() const</div><div class="ttdoc">Get the number of vertex infos.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01235">graph_info.cc:1235</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_ab10cb1ceaa01a74d44c1076c43c2fcce"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#ab10cb1ceaa01a74d44c1076c43c2fcce">graphar::GraphInfo::GetName</a></div><div class="ttdeci">const std::string & GetName() const</div><div class="ttdoc">Get the name of the graph.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01194">graph_info.cc:1194</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_aeb68a7550c63365d8093136601a3aeee"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#aeb68a7550c63365d8093136601a3aeee">graphar::GraphInfo::version</a></div><div class="ttdeci">const std::shared_ptr< const InfoVersion > & version() const</div><div class="ttdoc">Get the version info of the graph info object.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01202">graph_info.cc:1202 [...]
-<div class="ttc" id="aclassgraphar_1_1_graph_info_html_afd61923bd9ff1f5329b1c93ebbcd0278"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#afd61923bd9ff1f5329b1c93ebbcd0278">graphar::GraphInfo::GetEdgeInfoByIndex</a></div><div class="ttdeci">const std::shared_ptr< EdgeInfo > GetEdgeInfoByIndex(int index) const</div><div class="ttdoc">Get the edge info at the specified index.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01251">graph_i [...]
+<div class="ttc" id="aclassgraphar_1_1_adjacent_list_html_a592ba95843997b321f5545e950f03a57"><div class="ttname"><a href="classgraphar_1_1_adjacent_list.html#a592ba95843997b321f5545e950f03a57">graphar::AdjacentList::IsValidated</a></div><div class="ttdeci">bool IsValidated() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00191">graph_info.cc:191</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_adjacent_list_html_ab31cbdbaae74305f7bf3ffbd76c93efc"><div class="ttname"><a href="classgraphar_1_1_adjacent_list.html#ab31cbdbaae74305f7bf3ffbd76c93efc">graphar::AdjacentList::AdjacentList</a></div><div class="ttdeci">AdjacentList(AdjListType type, FileType file_type, const std::string &prefix="")</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00183">graph_info.cc:183</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_1_1_impl_html"><div class="ttname"><a href="classgraphar_1_1_edge_info_1_1_impl.html">graphar::EdgeInfo::Impl</a></div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00573">graph_info.cc:573</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html"><div class="ttname"><a href="classgraphar_1_1_edge_info.html">graphar::EdgeInfo</a></div><div class="ttdoc">EdgeInfo is a class to describe the edge information, including the source vertex type,...</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8h_source.html#l00408">graph_info.h:408</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a03c9b4f4b0edcf47f2e5746e8f9f6db0"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a03c9b4f4b0edcf47f2e5746e8f9f6db0">graphar::EdgeInfo::GetEdgeType</a></div><div class="ttdeci">const std::string & GetEdgeType() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00694">graph_info.cc:694</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a0ac67e1cf3b3fa79b6fcbc054869d0e5"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a0ac67e1cf3b3fa79b6fcbc054869d0e5">graphar::EdgeInfo::Load</a></div><div class="ttdeci">static Result< std::shared_ptr< EdgeInfo > > Load(std::shared_ptr< Yaml > yaml)</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00966">graph_info.cc:966</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a0eb9f0ff282c73f5c90a8c3940f1929e"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a0eb9f0ff282c73f5c90a8c3940f1929e">graphar::EdgeInfo::GetAdjListFilePath</a></div><div class="ttdeci">Result< std::string > GetAdjListFilePath(IdType vertex_chunk_index, IdType edge_chunk_index, AdjListType adj_list_type) const</div><div class="ttdoc">Get the file path of adj list topology chunk.</div><div class="ttdef"><b>Definition: [...]
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a1e95f986bd8c5191f438705b195191e3"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a1e95f986bd8c5191f438705b195191e3">graphar::EdgeInfo::Save</a></div><div class="ttdeci">Status Save(const std::string &file_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01107">graph_info.cc:1107</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a264853429b84060bbe36c671d5bc8963"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a264853429b84060bbe36c671d5bc8963">graphar::EdgeInfo::RemovePropertyGroup</a></div><div class="ttdeci">Result< std::shared_ptr< EdgeInfo > > RemovePropertyGroup(std::shared_ptr< PropertyGroup > property_group) const</div><div class="ttdoc">Removes a property group from the EdgeInfo instance and returns a new EdgeInfo.</div [...]
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a37fa8536c627a5e5f529e8ee6d3d7506"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a37fa8536c627a5e5f529e8ee6d3d7506">graphar::EdgeInfo::GetPropertyType</a></div><div class="ttdeci">Result< std::shared_ptr< DataType > > GetPropertyType(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00843">graph_info.cc:843</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a3dca57726506375cab4fc43fdef2914f"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a3dca57726506375cab4fc43fdef2914f">graphar::EdgeInfo::IsValidated</a></div><div class="ttdeci">bool IsValidated() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00947">graph_info.cc:947</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a4ec8810a54411f9a8aba35b2faf29acb"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a4ec8810a54411f9a8aba35b2faf29acb">graphar::EdgeInfo::GetPrefix</a></div><div class="ttdeci">const std::string & GetPrefix() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00704">graph_info.cc:704</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a4f2c7fedc68dce8f1c7fb90eede9906f"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a4f2c7fedc68dce8f1c7fb90eede9906f">graphar::EdgeInfo::GetEdgesNumFilePath</a></div><div class="ttdeci">Result< std::string > GetEdgesNumFilePath(IdType vertex_chunk_index, AdjListType adj_list_type) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00774">graph_info.cc:774</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a55004cedc30fcb0fa94adf246dcc2702"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a55004cedc30fcb0fa94adf246dcc2702">graphar::EdgeInfo::GetPropertyGroupPathPrefix</a></div><div class="ttdeci">Result< std::string > GetPropertyGroupPathPrefix(const std::shared_ptr< PropertyGroup > &property_group, AdjListType adj_list_type) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.htm [...]
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a5bd430ba21f5dfb230b978e03c4020ef"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a5bd430ba21f5dfb230b978e03c4020ef">graphar::EdgeInfo::IsPrimaryKey</a></div><div class="ttdeci">bool IsPrimaryKey(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00852">graph_info.cc:852</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a615fe3ed78f35af9aef598287cb89a27"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a615fe3ed78f35af9aef598287cb89a27">graphar::EdgeInfo::GetAdjListOffsetFilePath</a></div><div class="ttdeci">Result< std::string > GetAdjListOffsetFilePath(IdType vertex_chunk_index, AdjListType adj_list_type) const</div><div class="ttdoc">Get the adjacency list offset chunk file path of vertex chunk the offset chunks is aligned with t [...]
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a62c2300185c0655df9b44db39b0a399b"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a62c2300185c0655df9b44db39b0a399b">graphar::EdgeInfo::GetChunkSize</a></div><div class="ttdeci">IdType GetChunkSize() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00698">graph_info.cc:698</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a69182fa8d45bb0e7d4ac230adb1239b2"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a69182fa8d45bb0e7d4ac230adb1239b2">graphar::EdgeInfo::HasProperty</a></div><div class="ttdeci">bool HasProperty(const std::string &property_name) const</div><div class="ttdoc">Returns whether the edge info contains the given property.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00717">graph_info.cc:7 [...]
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a6e5b4fdc98d8399564396fb63955c62a"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a6e5b4fdc98d8399564396fb63955c62a">graphar::EdgeInfo::AddAdjacentList</a></div><div class="ttdeci">Result< std::shared_ptr< EdgeInfo > > AddAdjacentList(std::shared_ptr< AdjacentList > adj_list) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00868">graph_info.cc:868</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a7db36496a4cf0eb517b463de5caa125f"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a7db36496a4cf0eb517b463de5caa125f">graphar::EdgeInfo::RemoveAdjacentList</a></div><div class="ttdeci">Result< std::shared_ptr< EdgeInfo > > RemoveAdjacentList(std::shared_ptr< AdjacentList > adj_list) const</div><div class="ttdoc">Removes an adjacency list from the EdgeInfo instance and returns a new EdgeInfo.</div><div cl [...]
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a80004230ddfbc892995732ea59993a27"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a80004230ddfbc892995732ea59993a27">graphar::EdgeInfo::Dump</a></div><div class="ttdeci">Result< std::string > Dump() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01052">graph_info.cc:1052</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a80b00d930f22870d00331a639c9cc26e"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a80b00d930f22870d00331a639c9cc26e">graphar::EdgeInfo::IsNullableKey</a></div><div class="ttdeci">bool IsNullableKey(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00860">graph_info.cc:860</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a8551959066b19885b9ce15262b5cb3db"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a8551959066b19885b9ce15262b5cb3db">graphar::EdgeInfo::GetPropertyGroupByIndex</a></div><div class="ttdeci">std::shared_ptr< PropertyGroup > GetPropertyGroupByIndex(int index) const</div><div class="ttdoc">Get the property group at the specified index.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l007 [...]
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a857bb686e5d7f579ac0e2a889a53f829"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a857bb686e5d7f579ac0e2a889a53f829">graphar::EdgeInfo::HasPropertyGroup</a></div><div class="ttdeci">bool HasPropertyGroup(const std::shared_ptr< PropertyGroup > &property_group) const</div><div class="ttdoc">Returns whether the edge info contains the given property group.</div><div class="ttdef"><b>Definition:</b> <a href="graph__ [...]
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a9440bef05f4fa689662f26a9ef0117c1"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a9440bef05f4fa689662f26a9ef0117c1">graphar::EdgeInfo::version</a></div><div class="ttdeci">const std::shared_ptr< const InfoVersion > & version() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00708">graph_info.cc:708</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a9620f838addfdcb892b30e80e2cc4239"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a9620f838addfdcb892b30e80e2cc4239">graphar::EdgeInfo::AddPropertyGroup</a></div><div class="ttdeci">Result< std::shared_ptr< EdgeInfo > > AddPropertyGroup(std::shared_ptr< PropertyGroup > property_group) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00906">graph_info.cc:906</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_a994023f50f2f952cc1361b0f9928dec4"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#a994023f50f2f952cc1361b0f9928dec4">graphar::EdgeInfo::GetSrcType</a></div><div class="ttdeci">const std::string & GetSrcType() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00692">graph_info.cc:692</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_aaa6633dc8136cec806cbcf42c2cf136d"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#aaa6633dc8136cec806cbcf42c2cf136d">graphar::EdgeInfo::HasAdjacentListType</a></div><div class="ttdeci">bool HasAdjacentListType(AdjListType adj_list_type) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00712">graph_info.cc:712</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_aab2032669c9e9dcf11275fdd4cb2c1fa"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#aab2032669c9e9dcf11275fdd4cb2c1fa">graphar::EdgeInfo::GetOffsetPathPrefix</a></div><div class="ttdeci">Result< std::string > GetOffsetPathPrefix(AdjListType adj_list_type) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00808">graph_info.cc:808</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_aad31af465d41c026a35c20828915922e"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#aad31af465d41c026a35c20828915922e">graphar::EdgeInfo::IsDirected</a></div><div class="ttdeci">bool IsDirected() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00706">graph_info.cc:706</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_ab39f63f0aa7284c510a7e0d61b0942d3"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#ab39f63f0aa7284c510a7e0d61b0942d3">graphar::EdgeInfo::GetAdjListPathPrefix</a></div><div class="ttdeci">Result< std::string > GetAdjListPathPrefix(AdjListType adj_list_type) const</div><div class="ttdoc">Get the path prefix of the adjacency list topology chunk for the given adjacency list type.</div><div class="ttdef"><b>Definition:</ [...]
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_ab3c32f3112dcf08304676eeb95545b55"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#ab3c32f3112dcf08304676eeb95545b55">graphar::EdgeInfo::EdgeInfo</a></div><div class="ttdeci">EdgeInfo(const std::string &src_type, const std::string &edge_type, const std::string &dst_type, IdType chunk_size, IdType src_chunk_size, IdType dst_chunk_size, bool directed, const AdjacentListVector &adjacent_lists, const PropertyG [...]
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_abe0fc6672a3fbb5fbd0b5e8775cb8dac"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#abe0fc6672a3fbb5fbd0b5e8775cb8dac">graphar::EdgeInfo::GetDstChunkSize</a></div><div class="ttdeci">IdType GetDstChunkSize() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00702">graph_info.cc:702</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_abfcba5aed61cdfaf91f98e649b370722"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#abfcba5aed61cdfaf91f98e649b370722">graphar::EdgeInfo::GetPropertyFilePath</a></div><div class="ttdeci">Result< std::string > GetPropertyFilePath(const std::shared_ptr< PropertyGroup > &property_group, AdjListType adj_list_type, IdType vertex_chunk_index, IdType edge_chunk_index) const</div><div class="ttdoc">Get the chunk fi [...]
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_ac03180737adf29c79196bbe729b3c929"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#ac03180737adf29c79196bbe729b3c929">graphar::EdgeInfo::GetDstType</a></div><div class="ttdeci">const std::string & GetDstType() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00696">graph_info.cc:696</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_ac07ad975e8ecbdb779038388e3def59e"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#ac07ad975e8ecbdb779038388e3def59e">graphar::EdgeInfo::GetSrcChunkSize</a></div><div class="ttdeci">IdType GetSrcChunkSize() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00700">graph_info.cc:700</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_ad56107001dcbadac71ae8063cd25b58f"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#ad56107001dcbadac71ae8063cd25b58f">graphar::EdgeInfo::GetPropertyGroups</a></div><div class="ttdeci">const PropertyGroupVector & GetPropertyGroups() const</div><div class="ttdoc">Get the property groups.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00748">graph_info.cc:748</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_aec1a622c83b14d62b26e7143850a3cf1"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#aec1a622c83b14d62b26e7143850a3cf1">graphar::EdgeInfo::GetVerticesNumFilePath</a></div><div class="ttdeci">Result< std::string > GetVerticesNumFilePath(AdjListType adj_list_type) const</div><div class="ttdoc">Get the file path for the number of vertices.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l0 [...]
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_aec1bdf018d5b209f722dbf293ef14dd6"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#aec1bdf018d5b209f722dbf293ef14dd6">graphar::EdgeInfo::GetPropertyGroup</a></div><div class="ttdeci">std::shared_ptr< PropertyGroup > GetPropertyGroup(const std::string &property) const</div><div class="ttdoc">Get the property group containing the given property.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_s [...]
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html_aee914f2c4adf773c048daed0e93dbe32"><div class="ttname"><a href="classgraphar_1_1_edge_info.html#aee914f2c4adf773c048daed0e93dbe32">graphar::EdgeInfo::PropertyGroupNum</a></div><div class="ttdeci">int PropertyGroupNum() const</div><div class="ttdoc">Get the number of property groups.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00744">graph_info.cc:744</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_graph_info_1_1_impl_html"><div class="ttname"><a href="classgraphar_1_1_graph_info_1_1_impl.html">graphar::GraphInfo::Impl</a></div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01204">graph_info.cc:1204</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html"><div class="ttname"><a href="classgraphar_1_1_graph_info.html">graphar::GraphInfo</a></div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8h_source.html#l00736">graph_info.h:736</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a0f03270a6ee9c084dab10421cdf69cd5"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a0f03270a6ee9c084dab10421cdf69cd5">graphar::GraphInfo::GetVertexInfoIndex</a></div><div class="ttdeci">int GetVertexInfoIndex(const std::string &type) const</div><div class="ttdoc">Get the vertex info index with the given type.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01297">graph_info.cc:1297</ [...]
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a14dbabaec827198ee822070c1077a570"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a14dbabaec827198ee822070c1077a570">graphar::GraphInfo::GetEdgeInfos</a></div><div class="ttdeci">const EdgeInfoVector & GetEdgeInfos() const</div><div class="ttdoc">Get the edge infos of graph info.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01342">graph_info.cc:1342</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a1b473deea923f7b2a57c339dc7e51192"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a1b473deea923f7b2a57c339dc7e51192">graphar::GraphInfo::GraphInfo</a></div><div class="ttdeci">GraphInfo(const std::string &graph_name, VertexInfoVector vertex_infos, EdgeInfoVector edge_infos, const std::vector< std::string > &labels={}, const std::string &prefix="./", std::shared_ptr< const InfoVersion > [...]
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a339f08f5a1427aadc91d30d41dccced3"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a339f08f5a1427aadc91d30d41dccced3">graphar::GraphInfo::Save</a></div><div class="ttdeci">Status Save(const std::string &path) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01496">graph_info.cc:1496</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a3a94e3d0f64a1b4d1b672676940c389f"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a3a94e3d0f64a1b4d1b672676940c389f">graphar::GraphInfo::GetVertexInfoByIndex</a></div><div class="ttdeci">const std::shared_ptr< VertexInfo > GetVertexInfoByIndex(int index) const</div><div class="ttdoc">Get the vertex info at the specified index.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01323" [...]
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a44e38c74dc765a56f8f0d200774d8180"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a44e38c74dc765a56f8f0d200774d8180">graphar::GraphInfo::AddVertex</a></div><div class="ttdeci">Result< std::shared_ptr< GraphInfo > > AddVertex(std::shared_ptr< VertexInfo > vertex_info) const</div><div class="ttdoc">Adds a vertex info to the GraphInfo instance and returns a new GraphInfo.</div><div class="ttdef"><b>Defin [...]
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a53eef3d15830bea15de0bbbe7e11e208"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a53eef3d15830bea15de0bbbe7e11e208">graphar::GraphInfo::GetPrefix</a></div><div class="ttdeci">const std::string & GetPrefix() const</div><div class="ttdoc">Get the absolute path prefix of the chunk files.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01280">graph_info.cc:1280</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a63dbd61d6575fe783b3287f391f651ed"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a63dbd61d6575fe783b3287f391f651ed">graphar::GraphInfo::Load</a></div><div class="ttdeci">static Result< std::shared_ptr< GraphInfo > > Load(const std::string &path)</div><div class="ttdoc">Loads the input file as a GraphInfo instance.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01420">g [...]
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a6e848c7015e3b7d4706ff1ac2ffa6dcd"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a6e848c7015e3b7d4706ff1ac2ffa6dcd">graphar::GraphInfo::IsValidated</a></div><div class="ttdeci">bool IsValidated() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01346">graph_info.cc:1346</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a71646413e64620af1ca83f404e7150ea"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a71646413e64620af1ca83f404e7150ea">graphar::GraphInfo::Dump</a></div><div class="ttdeci">Result< std::string > Dump() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01446">graph_info.cc:1446</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a7e660710d2e1bd244b5d28bdc68aeab2"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a7e660710d2e1bd244b5d28bdc68aeab2">graphar::GraphInfo::GetEdgeInfo</a></div><div class="ttdeci">std::shared_ptr< EdgeInfo > GetEdgeInfo(const std::string &src_type, const std::string &edge_type, const std::string &dst_type) const</div><div class="ttdoc">Get the edge info with the given source vertex type, edge type, and [...]
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a814f2cdeecf58a308ab886a085991fc4"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a814f2cdeecf58a308ab886a085991fc4">graphar::GraphInfo::EdgeInfoNum</a></div><div class="ttdeci">int EdgeInfoNum() const</div><div class="ttdoc">Get the number of edge infos.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01319">graph_info.cc:1319</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a8799b4b1a2163507a9ddd8f910d4a9d3"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a8799b4b1a2163507a9ddd8f910d4a9d3">graphar::GraphInfo::GetVertexInfo</a></div><div class="ttdeci">std::shared_ptr< VertexInfo > GetVertexInfo(const std::string &type) const</div><div class="ttdoc">Get the vertex info with the given type.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01291">grap [...]
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a8b057bb6c3cfd897b0fb31ecceea40c9"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a8b057bb6c3cfd897b0fb31ecceea40c9">graphar::GraphInfo::GetLabels</a></div><div class="ttdeci">const std::vector< std::string > & GetLabels() const</div><div class="ttdoc">Get the vertex labels of the graph.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01276">graph_info.cc:1276</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a8fdf1ff0ec57e3ca2e66dd4366e390aa"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a8fdf1ff0ec57e3ca2e66dd4366e390aa">graphar::GraphInfo::AddEdge</a></div><div class="ttdeci">Result< std::shared_ptr< GraphInfo > > AddEdge(std::shared_ptr< EdgeInfo > edge_info) const</div><div class="ttdoc">Adds an edge info to the GraphInfo instance and returns a new GraphInfo.</div><div class="ttdef"><b>Definition:</b [...]
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_a9393d2797ff5d77f66691f84f15007c4"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#a9393d2797ff5d77f66691f84f15007c4">graphar::GraphInfo::GetVertexInfos</a></div><div class="ttdeci">const VertexInfoVector & GetVertexInfos() const</div><div class="ttdoc">Get the vertex infos of graph info.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01338">graph_info.cc:1338</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_aa0856ec7ecc8d8d1aac2f7cd51cfe136"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#aa0856ec7ecc8d8d1aac2f7cd51cfe136">graphar::GraphInfo::GetExtraInfo</a></div><div class="ttdeci">const std::unordered_map< std::string, std::string > & GetExtraInfo() const</div><div class="ttdoc">Get the extra metadata of the graph info object.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l012 [...]
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_aa2ca1614d499facc76927b5de733b503"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#aa2ca1614d499facc76927b5de733b503">graphar::GraphInfo::GetEdgeInfoIndex</a></div><div class="ttdeci">int GetEdgeInfoIndex(const std::string &src_type, const std::string &edge_type, const std::string &dst_type) const</div><div class="ttdoc">Get the edge info index with the given source vertex type, edge type, and destination ty [...]
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_aa384328a58c9138b5b77ea6172199d07"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#aa384328a58c9138b5b77ea6172199d07">graphar::GraphInfo::VertexInfoNum</a></div><div class="ttdeci">int VertexInfoNum() const</div><div class="ttdoc">Get the number of vertex infos.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01315">graph_info.cc:1315</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_ab10cb1ceaa01a74d44c1076c43c2fcce"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#ab10cb1ceaa01a74d44c1076c43c2fcce">graphar::GraphInfo::GetName</a></div><div class="ttdeci">const std::string & GetName() const</div><div class="ttdoc">Get the name of the graph.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01274">graph_info.cc:1274</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_acc0e018222ae59e749a52b3678e6529a"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#acc0e018222ae59e749a52b3678e6529a">graphar::GraphInfo::RemoveEdge</a></div><div class="ttdeci">Result< std::shared_ptr< GraphInfo > > RemoveEdge(std::shared_ptr< EdgeInfo > edge_info) const</div><div class="ttdoc">Removes an edge info from the GraphInfo instance and returns a new GraphInfo.</div><div class="ttdef"><b>Def [...]
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_ad64a71966ca197ae14ea21ff8787b769"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#ad64a71966ca197ae14ea21ff8787b769">graphar::GraphInfo::RemoveVertex</a></div><div class="ttdeci">Result< std::shared_ptr< GraphInfo > > RemoveVertex(std::shared_ptr< VertexInfo > vertex_info) const</div><div class="ttdoc">Removes a vertex info from the GraphInfo instance and returns a new GraphInfo.</div><div class="ttde [...]
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_aeb68a7550c63365d8093136601a3aeee"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#aeb68a7550c63365d8093136601a3aeee">graphar::GraphInfo::version</a></div><div class="ttdeci">const std::shared_ptr< const InfoVersion > & version() const</div><div class="ttdoc">Get the version info of the graph info object.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01282">graph_info.cc:1282 [...]
+<div class="ttc" id="aclassgraphar_1_1_graph_info_html_afd61923bd9ff1f5329b1c93ebbcd0278"><div class="ttname"><a href="classgraphar_1_1_graph_info.html#afd61923bd9ff1f5329b1c93ebbcd0278">graphar::GraphInfo::GetEdgeInfoByIndex</a></div><div class="ttdeci">const std::shared_ptr< EdgeInfo > GetEdgeInfoByIndex(int index) const</div><div class="ttdoc">Get the edge info at the specified index.</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l01331">graph_i [...]
<div class="ttc" id="aclassgraphar_1_1_property_group_html"><div class="ttname"><a href="classgraphar_1_1_property_group.html">graphar::PropertyGroup</a></div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8h_source.html#l00065">graph_info.h:65</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_property_group_html_a5ec3788a53adc6827d4fbf02fdfab530"><div class="ttname"><a href="classgraphar_1_1_property_group.html#a5ec3788a53adc6827d4fbf02fdfab530">graphar::PropertyGroup::GetPrefix</a></div><div class="ttdeci">const std::string & GetPrefix() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8h_source.html#l00098">graph_info.h:98</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_property_group_html_a9a1d4401d81fb2576ae3f3de21eb9e25"><div class="ttname"><a href="classgraphar_1_1_property_group.html#a9a1d4401d81fb2576ae3f3de21eb9e25">graphar::PropertyGroup::IsValidated</a></div><div class="ttdeci">bool IsValidated() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00118">graph_info.cc:118</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_property_group_html_a9a1d4401d81fb2576ae3f3de21eb9e25"><div class="ttname"><a href="classgraphar_1_1_property_group.html#a9a1d4401d81fb2576ae3f3de21eb9e25">graphar::PropertyGroup::IsValidated</a></div><div class="ttdeci">bool IsValidated() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00133">graph_info.cc:133</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_property_group_html_aa4fb424c0c1ef0051ff1029600221c22"><div class="ttname"><a href="classgraphar_1_1_property_group.html#aa4fb424c0c1ef0051ff1029600221c22">graphar::PropertyGroup::GetFileType</a></div><div class="ttdeci">FileType GetFileType() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8h_source.html#l00092">graph_info.h:92</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_property_group_html_abb84d3d9d16e5efc52c96089a977c60d"><div class="ttname"><a href="classgraphar_1_1_property_group.html#abb84d3d9d16e5efc52c96089a977c60d">graphar::PropertyGroup::PropertyGroup</a></div><div class="ttdeci">PropertyGroup(const std::vector< Property > &properties, FileType file_type, const std::string &prefix="")</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00094">graph_info. [...]
-<div class="ttc" id="aclassgraphar_1_1_property_group_html_af090f1d74049ce0222148ad02b26f81a"><div class="ttname"><a href="classgraphar_1_1_property_group.html#af090f1d74049ce0222148ad02b26f81a">graphar::PropertyGroup::GetProperties</a></div><div class="ttdeci">const std::vector< Property > & GetProperties() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00105">graph_info.cc:105</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_property_group_html_abb84d3d9d16e5efc52c96089a977c60d"><div class="ttname"><a href="classgraphar_1_1_property_group.html#abb84d3d9d16e5efc52c96089a977c60d">graphar::PropertyGroup::PropertyGroup</a></div><div class="ttdeci">PropertyGroup(const std::vector< Property > &properties, FileType file_type, const std::string &prefix="")</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00109">graph_info. [...]
+<div class="ttc" id="aclassgraphar_1_1_property_group_html_af090f1d74049ce0222148ad02b26f81a"><div class="ttname"><a href="classgraphar_1_1_property_group.html#af090f1d74049ce0222148ad02b26f81a">graphar::PropertyGroup::GetProperties</a></div><div class="ttdeci">const std::vector< Property > & GetProperties() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00120">graph_info.cc:120</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_property_html"><div class="ttname"><a href="classgraphar_1_1_property.html">graphar::Property</a></div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8h_source.html#l00034">graph_info.h:34</a></div></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_vertex_info_1_1_impl_html"><div class="ttname"><a href="classgraphar_1_1_vertex_info_1_1_impl.html">graphar::VertexInfo::Impl</a></div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00197">graph_info.cc:197</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_1_1_impl_html"><div class="ttname"><a href="classgraphar_1_1_vertex_info_1_1_impl.html">graphar::VertexInfo::Impl</a></div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00212">graph_info.cc:212</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_vertex_info_html"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html">graphar::VertexInfo</a></div><div class="ttdoc">VertexInfo is a class to describe the vertex information, including the vertex type,...</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8h_source.html#l00180">graph_info.h:180</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a2364ef208346bbd4d468ee78cfc6a1a3"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a2364ef208346bbd4d468ee78cfc6a1a3">graphar::VertexInfo::GetType</a></div><div class="ttdeci">const std::string & GetType() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00275">graph_info.cc:275</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a2a4cc44b7db8784bdb0e9691c7ad0fba"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a2a4cc44b7db8784bdb0e9691c7ad0fba">graphar::VertexInfo::GetPropertyGroup</a></div><div class="ttdeci">std::shared_ptr< PropertyGroup > GetPropertyGroup(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00314">graph_info.cc:314</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a3214a62ac41be6cb53c22894d2926710"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a3214a62ac41be6cb53c22894d2926710">graphar::VertexInfo::GetPathPrefix</a></div><div class="ttdeci">Result< std::string > GetPathPrefix(std::shared_ptr< PropertyGroup > property_group) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00298">graph_info.cc:298</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a34a49ce4905632889db3f969986cbe75"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a34a49ce4905632889db3f969986cbe75">graphar::VertexInfo::GetLabels</a></div><div class="ttdeci">const std::vector< std::string > & GetLabels() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00281">graph_info.cc:281</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a39a607d51da7e73a0fae473e90a61825"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a39a607d51da7e73a0fae473e90a61825">graphar::VertexInfo::GetChunkSize</a></div><div class="ttdeci">IdType GetChunkSize() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00277">graph_info.cc:277</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a47c84aab28674b5250a26c97806f2f48"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a47c84aab28674b5250a26c97806f2f48">graphar::VertexInfo::version</a></div><div class="ttdeci">const std::shared_ptr< const InfoVersion > & version() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00285">graph_info.cc:285</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a4a70be2aa82d5c435b3271ae766bb54d"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a4a70be2aa82d5c435b3271ae766bb54d">graphar::VertexInfo::AddPropertyGroup</a></div><div class="ttdeci">Result< std::shared_ptr< VertexInfo > > AddPropertyGroup(std::shared_ptr< PropertyGroup > property_group) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00384">graph_info.cc:384< [...]
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a5d42bec7d8cdb67f1e04b921f484e328"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a5d42bec7d8cdb67f1e04b921f484e328">graphar::VertexInfo::HasProperty</a></div><div class="ttdeci">bool HasProperty(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00348">graph_info.cc:348</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a64aca915578185662b4429e5ed265322"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a64aca915578185662b4429e5ed265322">graphar::VertexInfo::HasPropertyGroup</a></div><div class="ttdeci">bool HasPropertyGroup(const std::shared_ptr< PropertyGroup > &property_group) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00353">graph_info.cc:353</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a65faa894acf765eae9c7d4e34dff6306"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a65faa894acf765eae9c7d4e34dff6306">graphar::VertexInfo::GetFilePath</a></div><div class="ttdeci">Result< std::string > GetFilePath(std::shared_ptr< PropertyGroup > property_group, IdType chunk_index) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00289">graph_info.cc:289</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a68f7407348b39115e0fa4d44750e9d37"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a68f7407348b39115e0fa4d44750e9d37">graphar::VertexInfo::IsPrimaryKey</a></div><div class="ttdeci">bool IsPrimaryKey(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00332">graph_info.cc:332</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a70d2cb4637d4b2909bd34045a39568af"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a70d2cb4637d4b2909bd34045a39568af">graphar::VertexInfo::IsValidated</a></div><div class="ttdeci">bool IsValidated() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00401">graph_info.cc:401</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a7917824d18f7c84a02859f18b47e77fe"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a7917824d18f7c84a02859f18b47e77fe">graphar::VertexInfo::PropertyGroupNum</a></div><div class="ttdeci">int PropertyGroupNum() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00310">graph_info.cc:310</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a8fb76a180c2fb8192961a27862f5aa69"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a8fb76a180c2fb8192961a27862f5aa69">graphar::VertexInfo::GetPrefix</a></div><div class="ttdeci">const std::string & GetPrefix() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00279">graph_info.cc:279</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_aad61b0a40a4bef344fad93cb1332d97d"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#aad61b0a40a4bef344fad93cb1332d97d">graphar::VertexInfo::GetVerticesNumFilePath</a></div><div class="ttdeci">Result< std::string > GetVerticesNumFilePath() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00306">graph_info.cc:306</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_acbeedc2afc98e53155bb1f75c9cb465c"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#acbeedc2afc98e53155bb1f75c9cb465c">graphar::VertexInfo::GetPropertyType</a></div><div class="ttdeci">Result< std::shared_ptr< DataType > > GetPropertyType(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00366">graph_info.cc:366</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_acddb12cfcf7c6bfe1f1937f984828312"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#acddb12cfcf7c6bfe1f1937f984828312">graphar::VertexInfo::VertexInfo</a></div><div class="ttdeci">VertexInfo(const std::string &type, IdType chunk_size, const PropertyGroupVector &property_groups, const std::vector< std::string > &labels={}, const std::string &prefix="", std::shared_ptr< const InfoVersio [...]
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_ad6bc3cbb3ed0c5eaa7fd50298e106a78"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#ad6bc3cbb3ed0c5eaa7fd50298e106a78">graphar::VertexInfo::IsNullableKey</a></div><div class="ttdeci">bool IsNullableKey(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00340">graph_info.cc:340</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_adc0a253c371a004324ffae6e8abbdbc7"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#adc0a253c371a004324ffae6e8abbdbc7">graphar::VertexInfo::Dump</a></div><div class="ttdeci">Result< std::string > Dump() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00482">graph_info.cc:482</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_af1ade1caa6e70e4b7ce60cf4df7ac50c"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#af1ade1caa6e70e4b7ce60cf4df7ac50c">graphar::VertexInfo::Load</a></div><div class="ttdeci">static Result< std::shared_ptr< VertexInfo > > Load(std::shared_ptr< Yaml > yaml)</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00415">graph_info.cc:415</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_af6106f8fa90d876a0e97f58c7c39db33"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#af6106f8fa90d876a0e97f58c7c39db33">graphar::VertexInfo::GetPropertyGroupByIndex</a></div><div class="ttdeci">std::shared_ptr< PropertyGroup > GetPropertyGroupByIndex(int index) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00320">graph_info.cc:320</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_afd42b99a43507a9edb1825e7e104d1e7"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#afd42b99a43507a9edb1825e7e104d1e7">graphar::VertexInfo::Save</a></div><div class="ttdeci">Status Save(const std::string &file_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00530">graph_info.cc:530</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_aff9aadd406180802facb14d6a4b5e72e"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#aff9aadd406180802facb14d6a4b5e72e">graphar::VertexInfo::GetPropertyGroups</a></div><div class="ttdeci">const PropertyGroupVector & GetPropertyGroups() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00328">graph_info.cc:328</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a2364ef208346bbd4d468ee78cfc6a1a3"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a2364ef208346bbd4d468ee78cfc6a1a3">graphar::VertexInfo::GetType</a></div><div class="ttdeci">const std::string & GetType() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00290">graph_info.cc:290</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a2a4cc44b7db8784bdb0e9691c7ad0fba"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a2a4cc44b7db8784bdb0e9691c7ad0fba">graphar::VertexInfo::GetPropertyGroup</a></div><div class="ttdeci">std::shared_ptr< PropertyGroup > GetPropertyGroup(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00329">graph_info.cc:329</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a3214a62ac41be6cb53c22894d2926710"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a3214a62ac41be6cb53c22894d2926710">graphar::VertexInfo::GetPathPrefix</a></div><div class="ttdeci">Result< std::string > GetPathPrefix(std::shared_ptr< PropertyGroup > property_group) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00313">graph_info.cc:313</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a34a49ce4905632889db3f969986cbe75"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a34a49ce4905632889db3f969986cbe75">graphar::VertexInfo::GetLabels</a></div><div class="ttdeci">const std::vector< std::string > & GetLabels() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00296">graph_info.cc:296</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a39a607d51da7e73a0fae473e90a61825"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a39a607d51da7e73a0fae473e90a61825">graphar::VertexInfo::GetChunkSize</a></div><div class="ttdeci">IdType GetChunkSize() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00292">graph_info.cc:292</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a47c84aab28674b5250a26c97806f2f48"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a47c84aab28674b5250a26c97806f2f48">graphar::VertexInfo::version</a></div><div class="ttdeci">const std::shared_ptr< const InfoVersion > & version() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00300">graph_info.cc:300</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a4a70be2aa82d5c435b3271ae766bb54d"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a4a70be2aa82d5c435b3271ae766bb54d">graphar::VertexInfo::AddPropertyGroup</a></div><div class="ttdeci">Result< std::shared_ptr< VertexInfo > > AddPropertyGroup(std::shared_ptr< PropertyGroup > property_group) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00399">graph_info.cc:399< [...]
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a5d42bec7d8cdb67f1e04b921f484e328"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a5d42bec7d8cdb67f1e04b921f484e328">graphar::VertexInfo::HasProperty</a></div><div class="ttdeci">bool HasProperty(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00363">graph_info.cc:363</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a64aca915578185662b4429e5ed265322"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a64aca915578185662b4429e5ed265322">graphar::VertexInfo::HasPropertyGroup</a></div><div class="ttdeci">bool HasPropertyGroup(const std::shared_ptr< PropertyGroup > &property_group) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00368">graph_info.cc:368</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a65faa894acf765eae9c7d4e34dff6306"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a65faa894acf765eae9c7d4e34dff6306">graphar::VertexInfo::GetFilePath</a></div><div class="ttdeci">Result< std::string > GetFilePath(std::shared_ptr< PropertyGroup > property_group, IdType chunk_index) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00304">graph_info.cc:304</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a68f7407348b39115e0fa4d44750e9d37"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a68f7407348b39115e0fa4d44750e9d37">graphar::VertexInfo::IsPrimaryKey</a></div><div class="ttdeci">bool IsPrimaryKey(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00347">graph_info.cc:347</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a70d2cb4637d4b2909bd34045a39568af"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a70d2cb4637d4b2909bd34045a39568af">graphar::VertexInfo::IsValidated</a></div><div class="ttdeci">bool IsValidated() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00437">graph_info.cc:437</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a7917824d18f7c84a02859f18b47e77fe"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a7917824d18f7c84a02859f18b47e77fe">graphar::VertexInfo::PropertyGroupNum</a></div><div class="ttdeci">int PropertyGroupNum() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00325">graph_info.cc:325</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a8432977087cbb207f65b91debc240119"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a8432977087cbb207f65b91debc240119">graphar::VertexInfo::RemovePropertyGroup</a></div><div class="ttdeci">Result< std::shared_ptr< VertexInfo > > RemovePropertyGroup(std::shared_ptr< PropertyGroup > property_group) const</div><div class="ttdoc">Removes a property group from the VertexInfo instance and returns a new Vert [...]
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_a8fb76a180c2fb8192961a27862f5aa69"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#a8fb76a180c2fb8192961a27862f5aa69">graphar::VertexInfo::GetPrefix</a></div><div class="ttdeci">const std::string & GetPrefix() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00294">graph_info.cc:294</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_aad61b0a40a4bef344fad93cb1332d97d"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#aad61b0a40a4bef344fad93cb1332d97d">graphar::VertexInfo::GetVerticesNumFilePath</a></div><div class="ttdeci">Result< std::string > GetVerticesNumFilePath() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00321">graph_info.cc:321</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_acbeedc2afc98e53155bb1f75c9cb465c"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#acbeedc2afc98e53155bb1f75c9cb465c">graphar::VertexInfo::GetPropertyType</a></div><div class="ttdeci">Result< std::shared_ptr< DataType > > GetPropertyType(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00381">graph_info.cc:381</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_acddb12cfcf7c6bfe1f1937f984828312"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#acddb12cfcf7c6bfe1f1937f984828312">graphar::VertexInfo::VertexInfo</a></div><div class="ttdeci">VertexInfo(const std::string &type, IdType chunk_size, const PropertyGroupVector &property_groups, const std::vector< std::string > &labels={}, const std::string &prefix="", std::shared_ptr< const InfoVersio [...]
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_ad6bc3cbb3ed0c5eaa7fd50298e106a78"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#ad6bc3cbb3ed0c5eaa7fd50298e106a78">graphar::VertexInfo::IsNullableKey</a></div><div class="ttdeci">bool IsNullableKey(const std::string &property_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00355">graph_info.cc:355</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_adc0a253c371a004324ffae6e8abbdbc7"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#adc0a253c371a004324ffae6e8abbdbc7">graphar::VertexInfo::Dump</a></div><div class="ttdeci">Result< std::string > Dump() const noexcept</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00518">graph_info.cc:518</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_af1ade1caa6e70e4b7ce60cf4df7ac50c"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#af1ade1caa6e70e4b7ce60cf4df7ac50c">graphar::VertexInfo::Load</a></div><div class="ttdeci">static Result< std::shared_ptr< VertexInfo > > Load(std::shared_ptr< Yaml > yaml)</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00451">graph_info.cc:451</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_af6106f8fa90d876a0e97f58c7c39db33"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#af6106f8fa90d876a0e97f58c7c39db33">graphar::VertexInfo::GetPropertyGroupByIndex</a></div><div class="ttdeci">std::shared_ptr< PropertyGroup > GetPropertyGroupByIndex(int index) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00335">graph_info.cc:335</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_afd42b99a43507a9edb1825e7e104d1e7"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#afd42b99a43507a9edb1825e7e104d1e7">graphar::VertexInfo::Save</a></div><div class="ttdeci">Status Save(const std::string &file_name) const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00566">graph_info.cc:566</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_vertex_info_html_aff9aadd406180802facb14d6a4b5e72e"><div class="ttname"><a href="classgraphar_1_1_vertex_info.html#aff9aadd406180802facb14d6a4b5e72e">graphar::VertexInfo::GetPropertyGroups</a></div><div class="ttdeci">const PropertyGroupVector & GetPropertyGroups() const</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8cc_source.html#l00343">graph_info.cc:343</a></div></div>
</div><!-- fragment --></div><!-- contents -->
<!--
Licensed to the Apache Software Foundation (ASF) under one
diff --git a/docs/cpp/graph__reader_8h_source.html b/docs/cpp/graph__reader_8h_source.html
index 261cc52..9aee9cb 100644
--- a/docs/cpp/graph__reader_8h_source.html
+++ b/docs/cpp/graph__reader_8h_source.html
@@ -990,7 +990,7 @@ $(function() {
<div class="ttc" id="aclassgraphar_1_1_edge_html_a5350088ffa4fab0a11fbece2a6d5c413"><div class="ttname"><a href="classgraphar_1_1_edge.html#a5350088ffa4fab0a11fbece2a6d5c413">graphar::Edge::destination</a></div><div class="ttdeci">IdType destination() const noexcept</div><div class="ttdoc">Get destination id of the edge.</div><div class="ttdef"><b>Definition:</b> <a href="graph__reader_8h_source.html#l00133">graph_reader.h:133</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_edge_html_aa717cc7bec930a6aa97ee860825648b5"><div class="ttname"><a href="classgraphar_1_1_edge.html#aa717cc7bec930a6aa97ee860825648b5">graphar::Edge::IsValid</a></div><div class="ttdeci">bool IsValid(const std::string &property) const</div><div class="ttdoc">Return true if value at the property is valid (not null).</div><div class="ttdef"><b>Definition:</b> <a href="graph__reader_8h_source.html#l00150">graph_reader.h:150</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_edge_html_ad746d8f83ef691a52368e4b519d40027"><div class="ttname"><a href="classgraphar_1_1_edge.html#ad746d8f83ef691a52368e4b519d40027">graphar::Edge::property</a></div><div class="ttdeci">Result< T > property(const std::string &property) const</div><div class="ttdoc">Get the property value of the edge.</div><div class="ttdef"><b>Definition:</b> <a href="graph__reader_8cc_source.html#l00603">graph_reader.cc:603</a></div></div>
-<div class="ttc" id="aclassgraphar_1_1_edge_info_html"><div class="ttname"><a href="classgraphar_1_1_edge_info.html">graphar::EdgeInfo</a></div><div class="ttdoc">EdgeInfo is a class to describe the edge information, including the source vertex type,...</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8h_source.html#l00398">graph_info.h:398</a></div></div>
+<div class="ttc" id="aclassgraphar_1_1_edge_info_html"><div class="ttname"><a href="classgraphar_1_1_edge_info.html">graphar::EdgeInfo</a></div><div class="ttdoc">EdgeInfo is a class to describe the edge information, including the source vertex type,...</div><div class="ttdef"><b>Definition:</b> <a href="graph__info_8h_source.html#l00408">graph_info.h:408</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_edge_iter_html"><div class="ttname"><a href="classgraphar_1_1_edge_iter.html">graphar::EdgeIter</a></div><div class="ttdoc">The iterator for traversing a type of edges.</div><div class="ttdef"><b>Definition:</b> <a href="graph__reader_8h_source.html#l00491">graph_reader.h:491</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_edge_iter_html_a0288483d16ed0b62a7a1d1f79f923a6e"><div class="ttname"><a href="classgraphar_1_1_edge_iter.html#a0288483d16ed0b62a7a1d1f79f923a6e">graphar::EdgeIter::next_src</a></div><div class="ttdeci">bool next_src()</div><div class="ttdef"><b>Definition:</b> <a href="graph__reader_8h_source.html#l00716">graph_reader.h:716</a></div></div>
<div class="ttc" id="aclassgraphar_1_1_edge_iter_html_a04ab347b43542948dafd64f52185619a"><div class="ttname"><a href="classgraphar_1_1_edge_iter.html#a04ab347b43542948dafd64f52185619a">graphar::EdgeIter::source</a></div><div class="ttdeci">IdType source()</div><div class="ttdef"><b>Definition:</b> <a href="graph__reader_8cc_source.html#l00698">graph_reader.cc:698</a></div></div>
diff --git a/docs/cpp/search/all_10.js b/docs/cpp/search/all_10.js
index 30cf918..d331b32 100644
--- a/docs/cpp/search/all_10.js
+++ b/docs/cpp/search/all_10.js
@@ -1,18 +1,18 @@
var searchData=
[
- ['save_170',['Save',['../classgraphar_1_1_vertex_info.html#afd42b99a43507a9edb1825e7e104d1e7',1,'graphar::VertexInfo::Save()'],['../classgraphar_1_1_edge_info.html#a1e95f986bd8c5191f438705b195191e3',1,'graphar::EdgeInfo::Save()'],['../classgraphar_1_1_graph_info.html#a339f08f5a1427aadc91d30d41dccced3',1,'graphar::GraphInfo::Save()']]],
- ['seek_171',['seek',['../classgraphar_1_1_adj_list_chunk_info_reader.html#a4112f153ae93b5177d0d09e63dd3a83a',1,'graphar::AdjListChunkInfoReader::seek()'],['../classgraphar_1_1_adj_list_property_chunk_info_reader.html#a07835b2495f819c5dc1419933d66d61b',1,'graphar::AdjListPropertyChunkInfoReader::seek()'],['../classgraphar_1_1_adj_list_offset_chunk_info_reader.html#a2bc492ab3433d429ca24742d5057704d',1,'graphar::AdjListOffsetChunkInfoReader::seek()'],['../classgraphar_1_1_vertex_property_ [...]
- ['seek_5fchunk_5findex_172',['seek_chunk_index',['../classgraphar_1_1_adj_list_arrow_chunk_reader.html#aa18bd4c0daba0b681702a4e79b688b1f',1,'graphar::AdjListArrowChunkReader::seek_chunk_index()'],['../classgraphar_1_1_adj_list_property_arrow_chunk_reader.html#a43f9942247308265666c351c5c19e52b',1,'graphar::AdjListPropertyArrowChunkReader::seek_chunk_index()']]],
- ['seek_5fdst_173',['seek_dst',['../classgraphar_1_1_adj_list_arrow_chunk_reader.html#af9aed01c37c9b588bca7c16d3e744c0e',1,'graphar::AdjListArrowChunkReader::seek_dst()'],['../classgraphar_1_1_adj_list_property_arrow_chunk_reader.html#a1adc64854a6ee06781a559e6c1a87618',1,'graphar::AdjListPropertyArrowChunkReader::seek_dst()'],['../classgraphar_1_1_adj_list_chunk_info_reader.html#a031d114f5f7de849902168ae3a25ae59',1,'graphar::AdjListChunkInfoReader::seek_dst()'],['../classgraphar_1_1_adj [...]
- ['seek_5fsrc_174',['seek_src',['../classgraphar_1_1_adj_list_property_chunk_info_reader.html#a35abb7c994c7692b909f08973ced5bce',1,'graphar::AdjListPropertyChunkInfoReader::seek_src()'],['../classgraphar_1_1_adj_list_chunk_info_reader.html#a4f8cf5d9910f57c68575a69a4c6eb1dc',1,'graphar::AdjListChunkInfoReader::seek_src()'],['../classgraphar_1_1_adj_list_arrow_chunk_reader.html#a05ec017e937e1ac8367af0bf3b0533a9',1,'graphar::AdjListArrowChunkReader::seek_src()'],['../classgraphar_1_1_adj_l [...]
- ['select_175',['Select',['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html#abbd481e5ab71e536e878ec5aad9ff185',1,'graphar::VertexPropertyArrowChunkReader::Select()'],['../classgraphar_1_1_adj_list_property_arrow_chunk_reader.html#af44cd0428593d424c30c991b6cfeac96',1,'graphar::AdjListPropertyArrowChunkReader::Select()']]],
- ['setid_176',['SetId',['../classgraphar_1_1builder_1_1_vertex.html#a0e9a9b63017733934286cd99507d7268',1,'graphar::builder::Vertex']]],
- ['setvalidatelevel_177',['SetValidateLevel',['../classgraphar_1_1_vertex_property_writer.html#a9ef1eba6f5508f5a83423bbe8bb12c9b',1,'graphar::VertexPropertyWriter::SetValidateLevel()'],['../classgraphar_1_1_edge_chunk_writer.html#a1f66533c5776b9d83a53afaf2bed5985',1,'graphar::EdgeChunkWriter::SetValidateLevel()'],['../classgraphar_1_1builder_1_1_edges_builder.html#a6b32c705b64b306b80ab037875ef05bf',1,'graphar::builder::EdgesBuilder::SetValidateLevel()'],['../classgraphar_1_1builder_1_1_ [...]
- ['setwriteroptions_178',['SetWriterOptions',['../classgraphar_1_1builder_1_1_edges_builder.html#ab95a819d161c98ff26a1a7b3744f4d5d',1,'graphar::builder::EdgesBuilder::SetWriterOptions()'],['../classgraphar_1_1builder_1_1_vertices_builder.html#a71995d500d250dcde4a720fc7784b4c4',1,'graphar::builder::VerticesBuilder::SetWriterOptions()']]],
- ['size_179',['size',['../classgraphar_1_1_vertices_collection.html#aa748d07fd3a49b8383d99bf34f2eb559',1,'graphar::VerticesCollection::size()'],['../classgraphar_1_1_edges_collection.html#a7daf9ec4ef2b713e4e90b9abd5bacfa3',1,'graphar::EdgesCollection::size()']]],
- ['sortandwriteadjlisttable_180',['SortAndWriteAdjListTable',['../classgraphar_1_1_edge_chunk_writer.html#a69144b6a4bd4087b7401787d641ca772',1,'graphar::EdgeChunkWriter']]],
- ['sortandwritepropertytable_181',['SortAndWritePropertyTable',['../classgraphar_1_1_edge_chunk_writer.html#ab859c5eb1f10b88c5d0af6ab71e0ec79',1,'graphar::EdgeChunkWriter::SortAndWritePropertyTable(const std::shared_ptr< arrow::Table > &input_table, const std::shared_ptr< PropertyGroup > &property_group, IdType vertex_chunk_index, IdType start_chunk_index=0, ValidateLevel validate_level=ValidateLevel::default_validate) const'],['../classgraphar_1_1_edge_chunk_writer. [...]
- ['sortandwritetable_182',['SortAndWriteTable',['../classgraphar_1_1_edge_chunk_writer.html#aadbd1ad5299ab867d099ffc85528268a',1,'graphar::EdgeChunkWriter']]],
- ['source_183',['source',['../classgraphar_1_1_edge.html#a145a461cfb96e4c468bc7840324ef109',1,'graphar::Edge::source()'],['../classgraphar_1_1_edge_iter.html#a04ab347b43542948dafd64f52185619a',1,'graphar::EdgeIter::source()']]],
- ['status_184',['Status',['../classgraphar_1_1_status.html',1,'graphar::Status'],['../classgraphar_1_1_status.html#a0a860f829759c387e55e5d72e2253e36',1,'graphar::Status::Status() noexcept'],['../classgraphar_1_1_status.html#a003d78f26f5cbad3615e2ee5944b76bb',1,'graphar::Status::Status(StatusCode code, const std::string &msg)'],['../classgraphar_1_1_status.html#ad2e06c777504a46a8d4dd959aa46f106',1,'graphar::Status::Status(const Status &s)'],['../classgraphar_1_1_status.html#adb3d [...]
+ ['save_174',['Save',['../classgraphar_1_1_vertex_info.html#afd42b99a43507a9edb1825e7e104d1e7',1,'graphar::VertexInfo::Save()'],['../classgraphar_1_1_edge_info.html#a1e95f986bd8c5191f438705b195191e3',1,'graphar::EdgeInfo::Save()'],['../classgraphar_1_1_graph_info.html#a339f08f5a1427aadc91d30d41dccced3',1,'graphar::GraphInfo::Save()']]],
+ ['seek_175',['seek',['../classgraphar_1_1_adj_list_chunk_info_reader.html#a4112f153ae93b5177d0d09e63dd3a83a',1,'graphar::AdjListChunkInfoReader::seek()'],['../classgraphar_1_1_adj_list_property_chunk_info_reader.html#a07835b2495f819c5dc1419933d66d61b',1,'graphar::AdjListPropertyChunkInfoReader::seek()'],['../classgraphar_1_1_adj_list_offset_chunk_info_reader.html#a2bc492ab3433d429ca24742d5057704d',1,'graphar::AdjListOffsetChunkInfoReader::seek()'],['../classgraphar_1_1_vertex_property_ [...]
+ ['seek_5fchunk_5findex_176',['seek_chunk_index',['../classgraphar_1_1_adj_list_arrow_chunk_reader.html#aa18bd4c0daba0b681702a4e79b688b1f',1,'graphar::AdjListArrowChunkReader::seek_chunk_index()'],['../classgraphar_1_1_adj_list_property_arrow_chunk_reader.html#a43f9942247308265666c351c5c19e52b',1,'graphar::AdjListPropertyArrowChunkReader::seek_chunk_index()']]],
+ ['seek_5fdst_177',['seek_dst',['../classgraphar_1_1_adj_list_arrow_chunk_reader.html#af9aed01c37c9b588bca7c16d3e744c0e',1,'graphar::AdjListArrowChunkReader::seek_dst()'],['../classgraphar_1_1_adj_list_property_arrow_chunk_reader.html#a1adc64854a6ee06781a559e6c1a87618',1,'graphar::AdjListPropertyArrowChunkReader::seek_dst()'],['../classgraphar_1_1_adj_list_chunk_info_reader.html#a031d114f5f7de849902168ae3a25ae59',1,'graphar::AdjListChunkInfoReader::seek_dst()'],['../classgraphar_1_1_adj [...]
+ ['seek_5fsrc_178',['seek_src',['../classgraphar_1_1_adj_list_property_chunk_info_reader.html#a35abb7c994c7692b909f08973ced5bce',1,'graphar::AdjListPropertyChunkInfoReader::seek_src()'],['../classgraphar_1_1_adj_list_chunk_info_reader.html#a4f8cf5d9910f57c68575a69a4c6eb1dc',1,'graphar::AdjListChunkInfoReader::seek_src()'],['../classgraphar_1_1_adj_list_arrow_chunk_reader.html#a05ec017e937e1ac8367af0bf3b0533a9',1,'graphar::AdjListArrowChunkReader::seek_src()'],['../classgraphar_1_1_adj_l [...]
+ ['select_179',['Select',['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html#abbd481e5ab71e536e878ec5aad9ff185',1,'graphar::VertexPropertyArrowChunkReader::Select()'],['../classgraphar_1_1_adj_list_property_arrow_chunk_reader.html#af44cd0428593d424c30c991b6cfeac96',1,'graphar::AdjListPropertyArrowChunkReader::Select()']]],
+ ['setid_180',['SetId',['../classgraphar_1_1builder_1_1_vertex.html#a0e9a9b63017733934286cd99507d7268',1,'graphar::builder::Vertex']]],
+ ['setvalidatelevel_181',['SetValidateLevel',['../classgraphar_1_1_vertex_property_writer.html#a9ef1eba6f5508f5a83423bbe8bb12c9b',1,'graphar::VertexPropertyWriter::SetValidateLevel()'],['../classgraphar_1_1_edge_chunk_writer.html#a1f66533c5776b9d83a53afaf2bed5985',1,'graphar::EdgeChunkWriter::SetValidateLevel()'],['../classgraphar_1_1builder_1_1_edges_builder.html#a6b32c705b64b306b80ab037875ef05bf',1,'graphar::builder::EdgesBuilder::SetValidateLevel()'],['../classgraphar_1_1builder_1_1_ [...]
+ ['setwriteroptions_182',['SetWriterOptions',['../classgraphar_1_1builder_1_1_edges_builder.html#ab95a819d161c98ff26a1a7b3744f4d5d',1,'graphar::builder::EdgesBuilder::SetWriterOptions()'],['../classgraphar_1_1builder_1_1_vertices_builder.html#a71995d500d250dcde4a720fc7784b4c4',1,'graphar::builder::VerticesBuilder::SetWriterOptions()']]],
+ ['size_183',['size',['../classgraphar_1_1_vertices_collection.html#aa748d07fd3a49b8383d99bf34f2eb559',1,'graphar::VerticesCollection::size()'],['../classgraphar_1_1_edges_collection.html#a7daf9ec4ef2b713e4e90b9abd5bacfa3',1,'graphar::EdgesCollection::size()']]],
+ ['sortandwriteadjlisttable_184',['SortAndWriteAdjListTable',['../classgraphar_1_1_edge_chunk_writer.html#a69144b6a4bd4087b7401787d641ca772',1,'graphar::EdgeChunkWriter']]],
+ ['sortandwritepropertytable_185',['SortAndWritePropertyTable',['../classgraphar_1_1_edge_chunk_writer.html#ab859c5eb1f10b88c5d0af6ab71e0ec79',1,'graphar::EdgeChunkWriter::SortAndWritePropertyTable(const std::shared_ptr< arrow::Table > &input_table, const std::shared_ptr< PropertyGroup > &property_group, IdType vertex_chunk_index, IdType start_chunk_index=0, ValidateLevel validate_level=ValidateLevel::default_validate) const'],['../classgraphar_1_1_edge_chunk_writer. [...]
+ ['sortandwritetable_186',['SortAndWriteTable',['../classgraphar_1_1_edge_chunk_writer.html#aadbd1ad5299ab867d099ffc85528268a',1,'graphar::EdgeChunkWriter']]],
+ ['source_187',['source',['../classgraphar_1_1_edge.html#a145a461cfb96e4c468bc7840324ef109',1,'graphar::Edge::source()'],['../classgraphar_1_1_edge_iter.html#a04ab347b43542948dafd64f52185619a',1,'graphar::EdgeIter::source()']]],
+ ['status_188',['Status',['../classgraphar_1_1_status.html',1,'graphar::Status'],['../classgraphar_1_1_status.html#a0a860f829759c387e55e5d72e2253e36',1,'graphar::Status::Status() noexcept'],['../classgraphar_1_1_status.html#a003d78f26f5cbad3615e2ee5944b76bb',1,'graphar::Status::Status(StatusCode code, const std::string &msg)'],['../classgraphar_1_1_status.html#ad2e06c777504a46a8d4dd959aa46f106',1,'graphar::Status::Status(const Status &s)'],['../classgraphar_1_1_status.html#adb3d [...]
];
diff --git a/docs/cpp/search/all_11.js b/docs/cpp/search/all_11.js
index 3213f79..e8c4552 100644
--- a/docs/cpp/search/all_11.js
+++ b/docs/cpp/search/all_11.js
@@ -1,8 +1,8 @@
var searchData=
[
- ['timestamp_185',['Timestamp',['../classgraphar_1_1_timestamp.html',1,'graphar']]],
- ['to_5fbegin_186',['to_begin',['../classgraphar_1_1_edge_iter.html#a3be552f2d7b060d5f87c2191e35253b8',1,'graphar::EdgeIter']]],
- ['tostring_187',['ToString',['../classgraphar_1_1_info_version.html#a4e0d219b21a24894964b01bc8ddda3c3',1,'graphar::InfoVersion']]],
- ['typeerror_188',['TypeError',['../classgraphar_1_1_status.html#a3335cf4bf5cd222d5e29b01fe95e919a',1,'graphar::Status']]],
- ['typetoarrowtype_189',['TypeToArrowType',['../structgraphar_1_1_type_to_arrow_type.html',1,'graphar']]]
+ ['timestamp_189',['Timestamp',['../classgraphar_1_1_timestamp.html',1,'graphar']]],
+ ['to_5fbegin_190',['to_begin',['../classgraphar_1_1_edge_iter.html#a3be552f2d7b060d5f87c2191e35253b8',1,'graphar::EdgeIter']]],
+ ['tostring_191',['ToString',['../classgraphar_1_1_info_version.html#a4e0d219b21a24894964b01bc8ddda3c3',1,'graphar::InfoVersion']]],
+ ['typeerror_192',['TypeError',['../classgraphar_1_1_status.html#a3335cf4bf5cd222d5e29b01fe95e919a',1,'graphar::Status']]],
+ ['typetoarrowtype_193',['TypeToArrowType',['../structgraphar_1_1_type_to_arrow_type.html',1,'graphar']]]
];
diff --git a/docs/cpp/search/all_12.js b/docs/cpp/search/all_12.js
index 51872c1..5ee739a 100644
--- a/docs/cpp/search/all_12.js
+++ b/docs/cpp/search/all_12.js
@@ -1,7 +1,7 @@
var searchData=
[
- ['ubdedgescollection_190',['UBDEdgesCollection',['../classgraphar_1_1_u_b_d_edges_collection.html',1,'graphar::UBDEdgesCollection'],['../classgraphar_1_1_u_b_d_edges_collection.html#aef2d69ca4ae1b6cba62e42417ed80364',1,'graphar::UBDEdgesCollection::UBDEdgesCollection()']]],
- ['ubsedgescollection_191',['UBSEdgesCollection',['../classgraphar_1_1_u_b_s_edges_collection.html',1,'graphar::UBSEdgesCollection'],['../classgraphar_1_1_u_b_s_edges_collection.html#a78ba5d25060dda524a7c51e591527a1c',1,'graphar::UBSEdgesCollection::UBSEdgesCollection()']]],
- ['unknownerror_192',['UnknownError',['../classgraphar_1_1_status.html#a4a45918d3b4f77af5a794fd8f2245ab2',1,'graphar::Status']]],
- ['user_5fdefine_5ftypes_193',['user_define_types',['../classgraphar_1_1_info_version.html#abb46ad5fe0cdb63ca5170ec9671c4e0b',1,'graphar::InfoVersion']]]
+ ['ubdedgescollection_194',['UBDEdgesCollection',['../classgraphar_1_1_u_b_d_edges_collection.html',1,'graphar::UBDEdgesCollection'],['../classgraphar_1_1_u_b_d_edges_collection.html#aef2d69ca4ae1b6cba62e42417ed80364',1,'graphar::UBDEdgesCollection::UBDEdgesCollection()']]],
+ ['ubsedgescollection_195',['UBSEdgesCollection',['../classgraphar_1_1_u_b_s_edges_collection.html',1,'graphar::UBSEdgesCollection'],['../classgraphar_1_1_u_b_s_edges_collection.html#a78ba5d25060dda524a7c51e591527a1c',1,'graphar::UBSEdgesCollection::UBSEdgesCollection()']]],
+ ['unknownerror_196',['UnknownError',['../classgraphar_1_1_status.html#a4a45918d3b4f77af5a794fd8f2245ab2',1,'graphar::Status']]],
+ ['user_5fdefine_5ftypes_197',['user_define_types',['../classgraphar_1_1_info_version.html#abb46ad5fe0cdb63ca5170ec9671c4e0b',1,'graphar::InfoVersion']]]
];
diff --git a/docs/cpp/search/all_13.js b/docs/cpp/search/all_13.js
index c4b5f4e..876484a 100644
--- a/docs/cpp/search/all_13.js
+++ b/docs/cpp/search/all_13.js
@@ -1,18 +1,18 @@
var searchData=
[
- ['valuegetter_194',['ValueGetter',['../structgraphar_1_1util_1_1_value_getter.html',1,'graphar::util']]],
- ['valuegetter_3c_20std_3a_3astring_20_3e_195',['ValueGetter< std::string >',['../structgraphar_1_1util_1_1_value_getter_3_01std_1_1string_01_4.html',1,'graphar::util']]],
- ['version_196',['version',['../classgraphar_1_1_info_version.html#adf3934d5a05e1f86a5096e0ff9a09b78',1,'graphar::InfoVersion::version()'],['../classgraphar_1_1_graph_info.html#aeb68a7550c63365d8093136601a3aeee',1,'graphar::GraphInfo::version()'],['../classgraphar_1_1_edge_info.html#a9440bef05f4fa689662f26a9ef0117c1',1,'graphar::EdgeInfo::version()'],['../classgraphar_1_1_vertex_info.html#a47c84aab28674b5250a26c97806f2f48',1,'graphar::VertexInfo::version()']]],
- ['vertex_197',['Vertex',['../classgraphar_1_1builder_1_1_vertex.html',1,'graphar::builder::Vertex'],['../classgraphar_1_1_vertex.html',1,'graphar::Vertex'],['../classgraphar_1_1builder_1_1_vertex.html#ad4b0c92a74322ce0be53523fd254382f',1,'graphar::builder::Vertex::Vertex()'],['../classgraphar_1_1_vertex.html#aff8224ea52a0a08c3e07d07d1184ccaf',1,'graphar::Vertex::Vertex()']]],
- ['vertexchunkinfowriter_198',['VertexChunkInfoWriter',['../classgraphar_1_1_vertex_chunk_info_writer.html',1,'graphar::VertexChunkInfoWriter'],['../classgraphar_1_1_vertex_chunk_info_writer.html#af7f075dd7412ad38175eb1e09de9158d',1,'graphar::VertexChunkInfoWriter::VertexChunkInfoWriter()']]],
- ['vertexinfo_199',['VertexInfo',['../classgraphar_1_1_vertex_info.html',1,'graphar::VertexInfo'],['../classgraphar_1_1_vertex_info.html#acddb12cfcf7c6bfe1f1937f984828312',1,'graphar::VertexInfo::VertexInfo()']]],
- ['vertexinfonum_200',['VertexInfoNum',['../classgraphar_1_1_graph_info.html#aa384328a58c9138b5b77ea6172199d07',1,'graphar::GraphInfo']]],
- ['vertexiter_201',['VertexIter',['../classgraphar_1_1_vertex_iter.html',1,'graphar::VertexIter'],['../classgraphar_1_1_vertex_iter.html#a1c6d6fa3d58931f929f7e2cd75b67da5',1,'graphar::VertexIter::VertexIter(const std::shared_ptr< VertexInfo > &vertex_info, const std::string &prefix, IdType offset, const std::vector< std::string > &labels, const bool &is_filtered=false, const std::vector< IdType > &filtered_ids={}) noexcept'],['../classgraphar_1_1_ve [...]
- ['vertexpropertyarrowchunkreader_202',['VertexPropertyArrowChunkReader',['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html',1,'graphar::VertexPropertyArrowChunkReader'],['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html#a34726efe4d561e9d0b44c5f0d573f4fe',1,'graphar::VertexPropertyArrowChunkReader::VertexPropertyArrowChunkReader(const std::shared_ptr< VertexInfo > &vertex_info, const std::vector< std::string > &labels, const std::string &pre [...]
- ['vertexpropertychunkinforeader_203',['VertexPropertyChunkInfoReader',['../classgraphar_1_1_vertex_property_chunk_info_reader.html',1,'graphar::VertexPropertyChunkInfoReader'],['../classgraphar_1_1_vertex_property_chunk_info_reader.html#a3ebfb96e4e9b0042d0cb0aa65fbc95a8',1,'graphar::VertexPropertyChunkInfoReader::VertexPropertyChunkInfoReader()']]],
- ['vertexpropertywriter_204',['VertexPropertyWriter',['../classgraphar_1_1_vertex_property_writer.html',1,'graphar::VertexPropertyWriter'],['../classgraphar_1_1_vertex_property_writer.html#a47e13b7e46a9c1dacc069ca4f789b74f',1,'graphar::VertexPropertyWriter::VertexPropertyWriter()']]],
- ['verticesbuilder_205',['VerticesBuilder',['../classgraphar_1_1builder_1_1_vertices_builder.html',1,'graphar::builder::VerticesBuilder'],['../classgraphar_1_1builder_1_1_vertices_builder.html#acc85e675bdcdf0e0633a7871bf79bb57',1,'graphar::builder::VerticesBuilder::VerticesBuilder()']]],
- ['verticescollection_206',['VerticesCollection',['../classgraphar_1_1_vertices_collection.html',1,'graphar::VerticesCollection'],['../classgraphar_1_1_vertices_collection.html#ad69c997aae186d10725bf5c907d1d123',1,'graphar::VerticesCollection::VerticesCollection(const std::shared_ptr< VertexInfo > &vertex_info, const std::string &prefix, const bool is_filtered=false, std::vector< IdType > filtered_ids={})']]],
- ['verticeswithlabel_207',['verticesWithLabel',['../classgraphar_1_1_vertices_collection.html#a8b65a9581d99b60d66dd6cda82f936f8',1,'graphar::VerticesCollection::verticesWithLabel(const std::string &filter_label, const std::shared_ptr< GraphInfo > &graph_info, const std::string &type)'],['../classgraphar_1_1_vertices_collection.html#a9c1097cbc912a9576125e66c3686c19b',1,'graphar::VerticesCollection::verticesWithLabel(const std::string &filter_label, const std::shared [...]
- ['verticeswithmultiplelabels_208',['verticesWithMultipleLabels',['../classgraphar_1_1_vertices_collection.html#a82c4485dcd473fed76b8b8fe2d863965',1,'graphar::VerticesCollection::verticesWithMultipleLabels(const std::vector< std::string > &filter_labels, const std::shared_ptr< GraphInfo > &graph_info, const std::string &type)'],['../classgraphar_1_1_vertices_collection.html#a804247ead280d1a8a1c528f49ded9e68',1,'graphar::VerticesCollection::verticesWithMultipleLab [...]
+ ['valuegetter_198',['ValueGetter',['../structgraphar_1_1util_1_1_value_getter.html',1,'graphar::util']]],
+ ['valuegetter_3c_20std_3a_3astring_20_3e_199',['ValueGetter< std::string >',['../structgraphar_1_1util_1_1_value_getter_3_01std_1_1string_01_4.html',1,'graphar::util']]],
+ ['version_200',['version',['../classgraphar_1_1_info_version.html#adf3934d5a05e1f86a5096e0ff9a09b78',1,'graphar::InfoVersion::version()'],['../classgraphar_1_1_graph_info.html#aeb68a7550c63365d8093136601a3aeee',1,'graphar::GraphInfo::version()'],['../classgraphar_1_1_edge_info.html#a9440bef05f4fa689662f26a9ef0117c1',1,'graphar::EdgeInfo::version()'],['../classgraphar_1_1_vertex_info.html#a47c84aab28674b5250a26c97806f2f48',1,'graphar::VertexInfo::version()']]],
+ ['vertex_201',['Vertex',['../classgraphar_1_1builder_1_1_vertex.html',1,'graphar::builder::Vertex'],['../classgraphar_1_1_vertex.html',1,'graphar::Vertex'],['../classgraphar_1_1builder_1_1_vertex.html#ad4b0c92a74322ce0be53523fd254382f',1,'graphar::builder::Vertex::Vertex()'],['../classgraphar_1_1_vertex.html#aff8224ea52a0a08c3e07d07d1184ccaf',1,'graphar::Vertex::Vertex()']]],
+ ['vertexchunkinfowriter_202',['VertexChunkInfoWriter',['../classgraphar_1_1_vertex_chunk_info_writer.html',1,'graphar::VertexChunkInfoWriter'],['../classgraphar_1_1_vertex_chunk_info_writer.html#af7f075dd7412ad38175eb1e09de9158d',1,'graphar::VertexChunkInfoWriter::VertexChunkInfoWriter()']]],
+ ['vertexinfo_203',['VertexInfo',['../classgraphar_1_1_vertex_info.html',1,'graphar::VertexInfo'],['../classgraphar_1_1_vertex_info.html#acddb12cfcf7c6bfe1f1937f984828312',1,'graphar::VertexInfo::VertexInfo()']]],
+ ['vertexinfonum_204',['VertexInfoNum',['../classgraphar_1_1_graph_info.html#aa384328a58c9138b5b77ea6172199d07',1,'graphar::GraphInfo']]],
+ ['vertexiter_205',['VertexIter',['../classgraphar_1_1_vertex_iter.html',1,'graphar::VertexIter'],['../classgraphar_1_1_vertex_iter.html#a1c6d6fa3d58931f929f7e2cd75b67da5',1,'graphar::VertexIter::VertexIter(const std::shared_ptr< VertexInfo > &vertex_info, const std::string &prefix, IdType offset, const std::vector< std::string > &labels, const bool &is_filtered=false, const std::vector< IdType > &filtered_ids={}) noexcept'],['../classgraphar_1_1_ve [...]
+ ['vertexpropertyarrowchunkreader_206',['VertexPropertyArrowChunkReader',['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html',1,'graphar::VertexPropertyArrowChunkReader'],['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html#a34726efe4d561e9d0b44c5f0d573f4fe',1,'graphar::VertexPropertyArrowChunkReader::VertexPropertyArrowChunkReader(const std::shared_ptr< VertexInfo > &vertex_info, const std::vector< std::string > &labels, const std::string &pre [...]
+ ['vertexpropertychunkinforeader_207',['VertexPropertyChunkInfoReader',['../classgraphar_1_1_vertex_property_chunk_info_reader.html',1,'graphar::VertexPropertyChunkInfoReader'],['../classgraphar_1_1_vertex_property_chunk_info_reader.html#a3ebfb96e4e9b0042d0cb0aa65fbc95a8',1,'graphar::VertexPropertyChunkInfoReader::VertexPropertyChunkInfoReader()']]],
+ ['vertexpropertywriter_208',['VertexPropertyWriter',['../classgraphar_1_1_vertex_property_writer.html',1,'graphar::VertexPropertyWriter'],['../classgraphar_1_1_vertex_property_writer.html#a47e13b7e46a9c1dacc069ca4f789b74f',1,'graphar::VertexPropertyWriter::VertexPropertyWriter()']]],
+ ['verticesbuilder_209',['VerticesBuilder',['../classgraphar_1_1builder_1_1_vertices_builder.html',1,'graphar::builder::VerticesBuilder'],['../classgraphar_1_1builder_1_1_vertices_builder.html#acc85e675bdcdf0e0633a7871bf79bb57',1,'graphar::builder::VerticesBuilder::VerticesBuilder()']]],
+ ['verticescollection_210',['VerticesCollection',['../classgraphar_1_1_vertices_collection.html',1,'graphar::VerticesCollection'],['../classgraphar_1_1_vertices_collection.html#ad69c997aae186d10725bf5c907d1d123',1,'graphar::VerticesCollection::VerticesCollection(const std::shared_ptr< VertexInfo > &vertex_info, const std::string &prefix, const bool is_filtered=false, std::vector< IdType > filtered_ids={})']]],
+ ['verticeswithlabel_211',['verticesWithLabel',['../classgraphar_1_1_vertices_collection.html#a8b65a9581d99b60d66dd6cda82f936f8',1,'graphar::VerticesCollection::verticesWithLabel(const std::string &filter_label, const std::shared_ptr< GraphInfo > &graph_info, const std::string &type)'],['../classgraphar_1_1_vertices_collection.html#a9c1097cbc912a9576125e66c3686c19b',1,'graphar::VerticesCollection::verticesWithLabel(const std::string &filter_label, const std::shared [...]
+ ['verticeswithmultiplelabels_212',['verticesWithMultipleLabels',['../classgraphar_1_1_vertices_collection.html#a82c4485dcd473fed76b8b8fe2d863965',1,'graphar::VerticesCollection::verticesWithMultipleLabels(const std::vector< std::string > &filter_labels, const std::shared_ptr< GraphInfo > &graph_info, const std::string &type)'],['../classgraphar_1_1_vertices_collection.html#a804247ead280d1a8a1c528f49ded9e68',1,'graphar::VerticesCollection::verticesWithMultipleLab [...]
];
diff --git a/docs/cpp/search/all_14.js b/docs/cpp/search/all_14.js
index f52a65d..2a23376 100644
--- a/docs/cpp/search/all_14.js
+++ b/docs/cpp/search/all_14.js
@@ -1,18 +1,18 @@
var searchData=
[
- ['writeadjlistchunk_209',['WriteAdjListChunk',['../classgraphar_1_1_edge_chunk_writer.html#abbf227f722fcfaf5a330229d92dcc7d0',1,'graphar::EdgeChunkWriter']]],
- ['writeadjlisttable_210',['WriteAdjListTable',['../classgraphar_1_1_edge_chunk_writer.html#a7197f8501c2205dd6a5456d4bf1769fd',1,'graphar::EdgeChunkWriter']]],
- ['writechunk_211',['WriteChunk',['../classgraphar_1_1_vertex_property_writer.html#a5bad3bb184de34c951b1dea21cb1dcd5',1,'graphar::VertexPropertyWriter::WriteChunk(const std::shared_ptr< arrow::Table > &input_table, const std::shared_ptr< PropertyGroup > &property_group, IdType chunk_index, ValidateLevel validate_level=ValidateLevel::default_validate) const'],['../classgraphar_1_1_vertex_property_writer.html#a51de0fd2b7444c6a25ae36389b74bfd3',1,'graphar::VertexPropert [...]
- ['writeedgesnum_212',['WriteEdgesNum',['../classgraphar_1_1_edge_chunk_writer.html#abfa01f956f732e660eead056ce12f7c1',1,'graphar::EdgeChunkWriter']]],
- ['writelabelchunk_213',['WriteLabelChunk',['../classgraphar_1_1_vertex_property_writer.html#acc8026d1d2eaaf86f9c2d8d49c207f99',1,'graphar::VertexPropertyWriter']]],
- ['writelabeltable_214',['WriteLabelTable',['../classgraphar_1_1_vertex_property_writer.html#a001d330977bb6830bc78c42219f8c8a0',1,'graphar::VertexPropertyWriter']]],
- ['writelabeltabletofile_215',['WriteLabelTableToFile',['../classgraphar_1_1_file_system.html#ad48927d2fd542cc737cb16b7e529c0b6',1,'graphar::FileSystem']]],
- ['writeoffsetchunk_216',['WriteOffsetChunk',['../classgraphar_1_1_edge_chunk_writer.html#a9a9041e72a3d46e9fb8a2f1d2463489c',1,'graphar::EdgeChunkWriter']]],
- ['writepropertychunk_217',['WritePropertyChunk',['../classgraphar_1_1_edge_chunk_writer.html#a2552448a395acd1e3cc10e9db45ce877',1,'graphar::EdgeChunkWriter::WritePropertyChunk(const std::shared_ptr< arrow::Table > &input_table, const std::shared_ptr< PropertyGroup > &property_group, IdType vertex_chunk_index, IdType chunk_index, ValidateLevel validate_level=ValidateLevel::default_validate) const'],['../classgraphar_1_1_edge_chunk_writer.html#a48f3a7356d603416caf3aef [...]
- ['writepropertytable_218',['WritePropertyTable',['../classgraphar_1_1_edge_chunk_writer.html#a74d5ff66b247fb94b87db25442f98ee2',1,'graphar::EdgeChunkWriter::WritePropertyTable(const std::shared_ptr< arrow::Table > &input_table, const std::shared_ptr< PropertyGroup > &property_group, IdType vertex_chunk_index, IdType start_chunk_index=0, ValidateLevel validate_level=ValidateLevel::default_validate) const'],['../classgraphar_1_1_edge_chunk_writer.html#ac4d3a559f6508f1 [...]
- ['writeroptions_219',['WriterOptions',['../classgraphar_1_1_writer_options.html',1,'graphar']]],
- ['writetable_220',['WriteTable',['../classgraphar_1_1_vertex_property_writer.html#adea3f0326fad64bc061bc5b01790ab47',1,'graphar::VertexPropertyWriter::WriteTable(const std::shared_ptr< arrow::Table > &input_table, const std::shared_ptr< PropertyGroup > &property_group, IdType start_chunk_index, ValidateLevel validate_level=ValidateLevel::default_validate) const'],['../classgraphar_1_1_vertex_property_writer.html#aaa3107eb66941ceeb782280e3038ee4f',1,'graphar::VertexP [...]
- ['writetabletofile_221',['WriteTableToFile',['../classgraphar_1_1_file_system.html#af5c15ca6b858f7df89eea3e77319decf',1,'graphar::FileSystem']]],
- ['writevaluetofile_222',['WriteValueToFile',['../classgraphar_1_1_file_system.html#a474b6e6ba28a0114a1d84f4eb06a211b',1,'graphar::FileSystem']]],
- ['writeverticesnum_223',['WriteVerticesNum',['../classgraphar_1_1_vertex_property_writer.html#addf40fb82fe987af091278e01995b87a',1,'graphar::VertexPropertyWriter::WriteVerticesNum()'],['../classgraphar_1_1_edge_chunk_writer.html#af3796d4dd08e7d876281f53d039dad5f',1,'graphar::EdgeChunkWriter::WriteVerticesNum()']]]
+ ['writeadjlistchunk_213',['WriteAdjListChunk',['../classgraphar_1_1_edge_chunk_writer.html#abbf227f722fcfaf5a330229d92dcc7d0',1,'graphar::EdgeChunkWriter']]],
+ ['writeadjlisttable_214',['WriteAdjListTable',['../classgraphar_1_1_edge_chunk_writer.html#a7197f8501c2205dd6a5456d4bf1769fd',1,'graphar::EdgeChunkWriter']]],
+ ['writechunk_215',['WriteChunk',['../classgraphar_1_1_vertex_property_writer.html#a5bad3bb184de34c951b1dea21cb1dcd5',1,'graphar::VertexPropertyWriter::WriteChunk(const std::shared_ptr< arrow::Table > &input_table, const std::shared_ptr< PropertyGroup > &property_group, IdType chunk_index, ValidateLevel validate_level=ValidateLevel::default_validate) const'],['../classgraphar_1_1_vertex_property_writer.html#a51de0fd2b7444c6a25ae36389b74bfd3',1,'graphar::VertexPropert [...]
+ ['writeedgesnum_216',['WriteEdgesNum',['../classgraphar_1_1_edge_chunk_writer.html#abfa01f956f732e660eead056ce12f7c1',1,'graphar::EdgeChunkWriter']]],
+ ['writelabelchunk_217',['WriteLabelChunk',['../classgraphar_1_1_vertex_property_writer.html#acc8026d1d2eaaf86f9c2d8d49c207f99',1,'graphar::VertexPropertyWriter']]],
+ ['writelabeltable_218',['WriteLabelTable',['../classgraphar_1_1_vertex_property_writer.html#a001d330977bb6830bc78c42219f8c8a0',1,'graphar::VertexPropertyWriter']]],
+ ['writelabeltabletofile_219',['WriteLabelTableToFile',['../classgraphar_1_1_file_system.html#ad48927d2fd542cc737cb16b7e529c0b6',1,'graphar::FileSystem']]],
+ ['writeoffsetchunk_220',['WriteOffsetChunk',['../classgraphar_1_1_edge_chunk_writer.html#a9a9041e72a3d46e9fb8a2f1d2463489c',1,'graphar::EdgeChunkWriter']]],
+ ['writepropertychunk_221',['WritePropertyChunk',['../classgraphar_1_1_edge_chunk_writer.html#a2552448a395acd1e3cc10e9db45ce877',1,'graphar::EdgeChunkWriter::WritePropertyChunk(const std::shared_ptr< arrow::Table > &input_table, const std::shared_ptr< PropertyGroup > &property_group, IdType vertex_chunk_index, IdType chunk_index, ValidateLevel validate_level=ValidateLevel::default_validate) const'],['../classgraphar_1_1_edge_chunk_writer.html#a48f3a7356d603416caf3aef [...]
+ ['writepropertytable_222',['WritePropertyTable',['../classgraphar_1_1_edge_chunk_writer.html#a74d5ff66b247fb94b87db25442f98ee2',1,'graphar::EdgeChunkWriter::WritePropertyTable(const std::shared_ptr< arrow::Table > &input_table, const std::shared_ptr< PropertyGroup > &property_group, IdType vertex_chunk_index, IdType start_chunk_index=0, ValidateLevel validate_level=ValidateLevel::default_validate) const'],['../classgraphar_1_1_edge_chunk_writer.html#ac4d3a559f6508f1 [...]
+ ['writeroptions_223',['WriterOptions',['../classgraphar_1_1_writer_options.html',1,'graphar']]],
+ ['writetable_224',['WriteTable',['../classgraphar_1_1_vertex_property_writer.html#adea3f0326fad64bc061bc5b01790ab47',1,'graphar::VertexPropertyWriter::WriteTable(const std::shared_ptr< arrow::Table > &input_table, const std::shared_ptr< PropertyGroup > &property_group, IdType start_chunk_index, ValidateLevel validate_level=ValidateLevel::default_validate) const'],['../classgraphar_1_1_vertex_property_writer.html#aaa3107eb66941ceeb782280e3038ee4f',1,'graphar::VertexP [...]
+ ['writetabletofile_225',['WriteTableToFile',['../classgraphar_1_1_file_system.html#af5c15ca6b858f7df89eea3e77319decf',1,'graphar::FileSystem']]],
+ ['writevaluetofile_226',['WriteValueToFile',['../classgraphar_1_1_file_system.html#a474b6e6ba28a0114a1d84f4eb06a211b',1,'graphar::FileSystem']]],
+ ['writeverticesnum_227',['WriteVerticesNum',['../classgraphar_1_1_vertex_property_writer.html#addf40fb82fe987af091278e01995b87a',1,'graphar::VertexPropertyWriter::WriteVerticesNum()'],['../classgraphar_1_1_edge_chunk_writer.html#af3796d4dd08e7d876281f53d039dad5f',1,'graphar::EdgeChunkWriter::WriteVerticesNum()']]]
];
diff --git a/docs/cpp/search/all_15.js b/docs/cpp/search/all_15.js
index 26c92b2..eaa4a60 100644
--- a/docs/cpp/search/all_15.js
+++ b/docs/cpp/search/all_15.js
@@ -1,5 +1,5 @@
var searchData=
[
- ['yaml_224',['Yaml',['../classgraphar_1_1_yaml.html',1,'graphar']]],
- ['yamlerror_225',['YamlError',['../classgraphar_1_1_status.html#a358b23c7f34efbf14c84cbc2ddbdd6a4',1,'graphar::Status']]]
+ ['yaml_228',['Yaml',['../classgraphar_1_1_yaml.html',1,'graphar']]],
+ ['yamlerror_229',['YamlError',['../classgraphar_1_1_status.html#a358b23c7f34efbf14c84cbc2ddbdd6a4',1,'graphar::Status']]]
];
diff --git a/docs/cpp/search/all_16.js b/docs/cpp/search/all_16.js
index 77783cf..24651d2 100644
--- a/docs/cpp/search/all_16.js
+++ b/docs/cpp/search/all_16.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['_7estatus_226',['~Status',['../classgraphar_1_1_status.html#a1a1973d36a87952ccbbb2c09426d3076',1,'graphar::Status']]]
+ ['_7estatus_230',['~Status',['../classgraphar_1_1_status.html#a1a1973d36a87952ccbbb2c09426d3076',1,'graphar::Status']]]
];
diff --git a/docs/cpp/search/all_f.js b/docs/cpp/search/all_f.js
index 8d9f926..16106ea 100644
--- a/docs/cpp/search/all_f.js
+++ b/docs/cpp/search/all_f.js
@@ -1,5 +1,9 @@
var searchData=
[
['readfiletotable_168',['ReadFileToTable',['../classgraphar_1_1_file_system.html#acfd1a7452cf5d89826ac119b90949956',1,'graphar::FileSystem']]],
- ['readfiletovalue_169',['ReadFileToValue',['../classgraphar_1_1_file_system.html#aa014a28119399836283a573c9abd97b7',1,'graphar::FileSystem']]]
+ ['readfiletovalue_169',['ReadFileToValue',['../classgraphar_1_1_file_system.html#aa014a28119399836283a573c9abd97b7',1,'graphar::FileSystem']]],
+ ['removeadjacentlist_170',['RemoveAdjacentList',['../classgraphar_1_1_edge_info.html#a7db36496a4cf0eb517b463de5caa125f',1,'graphar::EdgeInfo']]],
+ ['removeedge_171',['RemoveEdge',['../classgraphar_1_1_graph_info.html#acc0e018222ae59e749a52b3678e6529a',1,'graphar::GraphInfo']]],
+ ['removepropertygroup_172',['RemovePropertyGroup',['../classgraphar_1_1_vertex_info.html#a8432977087cbb207f65b91debc240119',1,'graphar::VertexInfo::RemovePropertyGroup()'],['../classgraphar_1_1_edge_info.html#a264853429b84060bbe36c671d5bc8963',1,'graphar::EdgeInfo::RemovePropertyGroup()']]],
+ ['removevertex_173',['RemoveVertex',['../classgraphar_1_1_graph_info.html#ad64a71966ca197ae14ea21ff8787b769',1,'graphar::GraphInfo']]]
];
diff --git a/docs/cpp/search/classes_0.js b/docs/cpp/search/classes_0.js
index 55934a8..f8112a3 100644
--- a/docs/cpp/search/classes_0.js
+++ b/docs/cpp/search/classes_0.js
@@ -1,12 +1,12 @@
var searchData=
[
- ['adjacentlist_227',['AdjacentList',['../classgraphar_1_1_adjacent_list.html',1,'graphar']]],
- ['adjlistarrowchunkreader_228',['AdjListArrowChunkReader',['../classgraphar_1_1_adj_list_arrow_chunk_reader.html',1,'graphar']]],
- ['adjlistchunkinforeader_229',['AdjListChunkInfoReader',['../classgraphar_1_1_adj_list_chunk_info_reader.html',1,'graphar']]],
- ['adjlistoffsetarrowchunkreader_230',['AdjListOffsetArrowChunkReader',['../classgraphar_1_1_adj_list_offset_arrow_chunk_reader.html',1,'graphar']]],
- ['adjlistoffsetchunkinforeader_231',['AdjListOffsetChunkInfoReader',['../classgraphar_1_1_adj_list_offset_chunk_info_reader.html',1,'graphar']]],
- ['adjlistpropertyarrowchunkreader_232',['AdjListPropertyArrowChunkReader',['../classgraphar_1_1_adj_list_property_arrow_chunk_reader.html',1,'graphar']]],
- ['adjlistpropertychunkinforeader_233',['AdjListPropertyChunkInfoReader',['../classgraphar_1_1_adj_list_property_chunk_info_reader.html',1,'graphar']]],
- ['array_234',['Array',['../classgraphar_1_1_array.html',1,'graphar']]],
- ['array_3c_20std_3a_3astring_5fview_20_3e_235',['Array< std::string_view >',['../classgraphar_1_1_array_3_01std_1_1string__view_01_4.html',1,'graphar']]]
+ ['adjacentlist_231',['AdjacentList',['../classgraphar_1_1_adjacent_list.html',1,'graphar']]],
+ ['adjlistarrowchunkreader_232',['AdjListArrowChunkReader',['../classgraphar_1_1_adj_list_arrow_chunk_reader.html',1,'graphar']]],
+ ['adjlistchunkinforeader_233',['AdjListChunkInfoReader',['../classgraphar_1_1_adj_list_chunk_info_reader.html',1,'graphar']]],
+ ['adjlistoffsetarrowchunkreader_234',['AdjListOffsetArrowChunkReader',['../classgraphar_1_1_adj_list_offset_arrow_chunk_reader.html',1,'graphar']]],
+ ['adjlistoffsetchunkinforeader_235',['AdjListOffsetChunkInfoReader',['../classgraphar_1_1_adj_list_offset_chunk_info_reader.html',1,'graphar']]],
+ ['adjlistpropertyarrowchunkreader_236',['AdjListPropertyArrowChunkReader',['../classgraphar_1_1_adj_list_property_arrow_chunk_reader.html',1,'graphar']]],
+ ['adjlistpropertychunkinforeader_237',['AdjListPropertyChunkInfoReader',['../classgraphar_1_1_adj_list_property_chunk_info_reader.html',1,'graphar']]],
+ ['array_238',['Array',['../classgraphar_1_1_array.html',1,'graphar']]],
+ ['array_3c_20std_3a_3astring_5fview_20_3e_239',['Array< std::string_view >',['../classgraphar_1_1_array_3_01std_1_1string__view_01_4.html',1,'graphar']]]
];
diff --git a/docs/cpp/search/classes_1.js b/docs/cpp/search/classes_1.js
index 99d0c54..3b9289b 100644
--- a/docs/cpp/search/classes_1.js
+++ b/docs/cpp/search/classes_1.js
@@ -1,5 +1,5 @@
var searchData=
[
- ['csvoptionbuilder_236',['CSVOptionBuilder',['../classgraphar_1_1_writer_options_1_1_c_s_v_option_builder.html',1,'graphar::WriterOptions']]],
- ['ctypetoarrowtype_237',['CTypeToArrowType',['../structgraphar_1_1_c_type_to_arrow_type.html',1,'graphar']]]
+ ['csvoptionbuilder_240',['CSVOptionBuilder',['../classgraphar_1_1_writer_options_1_1_c_s_v_option_builder.html',1,'graphar::WriterOptions']]],
+ ['ctypetoarrowtype_241',['CTypeToArrowType',['../structgraphar_1_1_c_type_to_arrow_type.html',1,'graphar']]]
];
diff --git a/docs/cpp/search/classes_2.js b/docs/cpp/search/classes_2.js
index 00774bf..5716b81 100644
--- a/docs/cpp/search/classes_2.js
+++ b/docs/cpp/search/classes_2.js
@@ -1,5 +1,5 @@
var searchData=
[
- ['datatype_238',['DataType',['../classgraphar_1_1_data_type.html',1,'graphar']]],
- ['date_239',['Date',['../classgraphar_1_1_date.html',1,'graphar']]]
+ ['datatype_242',['DataType',['../classgraphar_1_1_data_type.html',1,'graphar']]],
+ ['date_243',['Date',['../classgraphar_1_1_date.html',1,'graphar']]]
];
diff --git a/docs/cpp/search/classes_3.js b/docs/cpp/search/classes_3.js
index 3e75e13..b3f3294 100644
--- a/docs/cpp/search/classes_3.js
+++ b/docs/cpp/search/classes_3.js
@@ -1,24 +1,24 @@
var searchData=
[
- ['edge_240',['Edge',['../classgraphar_1_1builder_1_1_edge.html',1,'graphar::builder::Edge'],['../classgraphar_1_1_edge.html',1,'graphar::Edge']]],
- ['edgechunkinfowriter_241',['EdgeChunkInfoWriter',['../classgraphar_1_1_edge_chunk_info_writer.html',1,'graphar']]],
- ['edgechunkwriter_242',['EdgeChunkWriter',['../classgraphar_1_1_edge_chunk_writer.html',1,'graphar']]],
- ['edgeinfo_243',['EdgeInfo',['../classgraphar_1_1_edge_info.html',1,'graphar']]],
- ['edgeiter_244',['EdgeIter',['../classgraphar_1_1_edge_iter.html',1,'graphar']]],
- ['edgesbuilder_245',['EdgesBuilder',['../classgraphar_1_1builder_1_1_edges_builder.html',1,'graphar::builder']]],
- ['edgescollection_246',['EdgesCollection',['../classgraphar_1_1_edges_collection.html',1,'graphar']]],
- ['expression_247',['Expression',['../classgraphar_1_1_expression.html',1,'graphar']]],
- ['expressionand_248',['ExpressionAnd',['../classgraphar_1_1_expression_and.html',1,'graphar']]],
- ['expressionbinaryop_249',['ExpressionBinaryOp',['../classgraphar_1_1_expression_binary_op.html',1,'graphar']]],
- ['expressionequal_250',['ExpressionEqual',['../classgraphar_1_1_expression_equal.html',1,'graphar']]],
- ['expressiongreaterequal_251',['ExpressionGreaterEqual',['../classgraphar_1_1_expression_greater_equal.html',1,'graphar']]],
- ['expressiongreaterthan_252',['ExpressionGreaterThan',['../classgraphar_1_1_expression_greater_than.html',1,'graphar']]],
- ['expressionlessequal_253',['ExpressionLessEqual',['../classgraphar_1_1_expression_less_equal.html',1,'graphar']]],
- ['expressionlessthan_254',['ExpressionLessThan',['../classgraphar_1_1_expression_less_than.html',1,'graphar']]],
- ['expressionliteral_255',['ExpressionLiteral',['../classgraphar_1_1_expression_literal.html',1,'graphar']]],
- ['expressionnot_256',['ExpressionNot',['../classgraphar_1_1_expression_not.html',1,'graphar']]],
- ['expressionnotequal_257',['ExpressionNotEqual',['../classgraphar_1_1_expression_not_equal.html',1,'graphar']]],
- ['expressionor_258',['ExpressionOr',['../classgraphar_1_1_expression_or.html',1,'graphar']]],
- ['expressionproperty_259',['ExpressionProperty',['../classgraphar_1_1_expression_property.html',1,'graphar']]],
- ['expressionunaryop_260',['ExpressionUnaryOp',['../classgraphar_1_1_expression_unary_op.html',1,'graphar']]]
+ ['edge_244',['Edge',['../classgraphar_1_1builder_1_1_edge.html',1,'graphar::builder::Edge'],['../classgraphar_1_1_edge.html',1,'graphar::Edge']]],
+ ['edgechunkinfowriter_245',['EdgeChunkInfoWriter',['../classgraphar_1_1_edge_chunk_info_writer.html',1,'graphar']]],
+ ['edgechunkwriter_246',['EdgeChunkWriter',['../classgraphar_1_1_edge_chunk_writer.html',1,'graphar']]],
+ ['edgeinfo_247',['EdgeInfo',['../classgraphar_1_1_edge_info.html',1,'graphar']]],
+ ['edgeiter_248',['EdgeIter',['../classgraphar_1_1_edge_iter.html',1,'graphar']]],
+ ['edgesbuilder_249',['EdgesBuilder',['../classgraphar_1_1builder_1_1_edges_builder.html',1,'graphar::builder']]],
+ ['edgescollection_250',['EdgesCollection',['../classgraphar_1_1_edges_collection.html',1,'graphar']]],
+ ['expression_251',['Expression',['../classgraphar_1_1_expression.html',1,'graphar']]],
+ ['expressionand_252',['ExpressionAnd',['../classgraphar_1_1_expression_and.html',1,'graphar']]],
+ ['expressionbinaryop_253',['ExpressionBinaryOp',['../classgraphar_1_1_expression_binary_op.html',1,'graphar']]],
+ ['expressionequal_254',['ExpressionEqual',['../classgraphar_1_1_expression_equal.html',1,'graphar']]],
+ ['expressiongreaterequal_255',['ExpressionGreaterEqual',['../classgraphar_1_1_expression_greater_equal.html',1,'graphar']]],
+ ['expressiongreaterthan_256',['ExpressionGreaterThan',['../classgraphar_1_1_expression_greater_than.html',1,'graphar']]],
+ ['expressionlessequal_257',['ExpressionLessEqual',['../classgraphar_1_1_expression_less_equal.html',1,'graphar']]],
+ ['expressionlessthan_258',['ExpressionLessThan',['../classgraphar_1_1_expression_less_than.html',1,'graphar']]],
+ ['expressionliteral_259',['ExpressionLiteral',['../classgraphar_1_1_expression_literal.html',1,'graphar']]],
+ ['expressionnot_260',['ExpressionNot',['../classgraphar_1_1_expression_not.html',1,'graphar']]],
+ ['expressionnotequal_261',['ExpressionNotEqual',['../classgraphar_1_1_expression_not_equal.html',1,'graphar']]],
+ ['expressionor_262',['ExpressionOr',['../classgraphar_1_1_expression_or.html',1,'graphar']]],
+ ['expressionproperty_263',['ExpressionProperty',['../classgraphar_1_1_expression_property.html',1,'graphar']]],
+ ['expressionunaryop_264',['ExpressionUnaryOp',['../classgraphar_1_1_expression_unary_op.html',1,'graphar']]]
];
diff --git a/docs/cpp/search/classes_4.js b/docs/cpp/search/classes_4.js
index 358c0b7..9462f9d 100644
--- a/docs/cpp/search/classes_4.js
+++ b/docs/cpp/search/classes_4.js
@@ -1,5 +1,5 @@
var searchData=
[
- ['filesystem_261',['FileSystem',['../classgraphar_1_1_file_system.html',1,'graphar']]],
- ['filteroptions_262',['FilterOptions',['../structgraphar_1_1util_1_1_filter_options.html',1,'graphar::util']]]
+ ['filesystem_265',['FileSystem',['../classgraphar_1_1_file_system.html',1,'graphar']]],
+ ['filteroptions_266',['FilterOptions',['../structgraphar_1_1util_1_1_filter_options.html',1,'graphar::util']]]
];
diff --git a/docs/cpp/search/classes_5.js b/docs/cpp/search/classes_5.js
index 75896a0..c124a22 100644
--- a/docs/cpp/search/classes_5.js
+++ b/docs/cpp/search/classes_5.js
@@ -1,5 +1,5 @@
var searchData=
[
- ['generalparams_263',['GeneralParams',['../structgraphar_1_1_general_params.html',1,'graphar']]],
- ['graphinfo_264',['GraphInfo',['../classgraphar_1_1_graph_info.html',1,'graphar']]]
+ ['generalparams_267',['GeneralParams',['../structgraphar_1_1_general_params.html',1,'graphar']]],
+ ['graphinfo_268',['GraphInfo',['../classgraphar_1_1_graph_info.html',1,'graphar']]]
];
diff --git a/docs/cpp/search/classes_6.js b/docs/cpp/search/classes_6.js
index 03759c9..70cb30d 100644
--- a/docs/cpp/search/classes_6.js
+++ b/docs/cpp/search/classes_6.js
@@ -1,7 +1,7 @@
var searchData=
[
- ['impl_265',['Impl',['../classgraphar_1_1_edge_info_1_1_impl.html',1,'graphar::EdgeInfo::Impl'],['../classgraphar_1_1_graph_info_1_1_impl.html',1,'graphar::GraphInfo::Impl'],['../classgraphar_1_1_vertex_info_1_1_impl.html',1,'graphar::VertexInfo::Impl']]],
- ['indexconverter_266',['IndexConverter',['../structgraphar_1_1util_1_1_index_converter.html',1,'graphar::util']]],
- ['infoversion_267',['InfoVersion',['../classgraphar_1_1_info_version.html',1,'graphar']]],
- ['iterator_268',['iterator',['../classgraphar_1_1_array_3_01std_1_1string__view_01_4_1_1iterator.html',1,'graphar::Array< std::string_view >']]]
+ ['impl_269',['Impl',['../classgraphar_1_1_edge_info_1_1_impl.html',1,'graphar::EdgeInfo::Impl'],['../classgraphar_1_1_graph_info_1_1_impl.html',1,'graphar::GraphInfo::Impl'],['../classgraphar_1_1_vertex_info_1_1_impl.html',1,'graphar::VertexInfo::Impl']]],
+ ['indexconverter_270',['IndexConverter',['../structgraphar_1_1util_1_1_index_converter.html',1,'graphar::util']]],
+ ['infoversion_271',['InfoVersion',['../classgraphar_1_1_info_version.html',1,'graphar']]],
+ ['iterator_272',['iterator',['../classgraphar_1_1_array_3_01std_1_1string__view_01_4_1_1iterator.html',1,'graphar::Array< std::string_view >']]]
];
diff --git a/docs/cpp/search/classes_7.js b/docs/cpp/search/classes_7.js
index 52668c0..e8e834f 100644
--- a/docs/cpp/search/classes_7.js
+++ b/docs/cpp/search/classes_7.js
@@ -1,6 +1,6 @@
var searchData=
[
- ['obdedgescollection_269',['OBDEdgesCollection',['../classgraphar_1_1_o_b_d_edges_collection.html',1,'graphar']]],
- ['obsedgecollection_270',['OBSEdgeCollection',['../classgraphar_1_1_o_b_s_edge_collection.html',1,'graphar']]],
- ['orcoptionbuilder_271',['ORCOptionBuilder',['../classgraphar_1_1_writer_options_1_1_o_r_c_option_builder.html',1,'graphar::WriterOptions']]]
+ ['obdedgescollection_273',['OBDEdgesCollection',['../classgraphar_1_1_o_b_d_edges_collection.html',1,'graphar']]],
+ ['obsedgecollection_274',['OBSEdgeCollection',['../classgraphar_1_1_o_b_s_edge_collection.html',1,'graphar']]],
+ ['orcoptionbuilder_275',['ORCOptionBuilder',['../classgraphar_1_1_writer_options_1_1_o_r_c_option_builder.html',1,'graphar::WriterOptions']]]
];
diff --git a/docs/cpp/search/classes_8.js b/docs/cpp/search/classes_8.js
index 29a778c..8e1367f 100644
--- a/docs/cpp/search/classes_8.js
+++ b/docs/cpp/search/classes_8.js
@@ -1,6 +1,6 @@
var searchData=
[
- ['parquetoptionbuilder_272',['ParquetOptionBuilder',['../classgraphar_1_1_writer_options_1_1_parquet_option_builder.html',1,'graphar::WriterOptions']]],
- ['property_273',['Property',['../classgraphar_1_1_property.html',1,'graphar']]],
- ['propertygroup_274',['PropertyGroup',['../classgraphar_1_1_property_group.html',1,'graphar']]]
+ ['parquetoptionbuilder_276',['ParquetOptionBuilder',['../classgraphar_1_1_writer_options_1_1_parquet_option_builder.html',1,'graphar::WriterOptions']]],
+ ['property_277',['Property',['../classgraphar_1_1_property.html',1,'graphar']]],
+ ['propertygroup_278',['PropertyGroup',['../classgraphar_1_1_property_group.html',1,'graphar']]]
];
diff --git a/docs/cpp/search/classes_9.js b/docs/cpp/search/classes_9.js
index c8c9e86..0be5c84 100644
--- a/docs/cpp/search/classes_9.js
+++ b/docs/cpp/search/classes_9.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['status_275',['Status',['../classgraphar_1_1_status.html',1,'graphar']]]
+ ['status_279',['Status',['../classgraphar_1_1_status.html',1,'graphar']]]
];
diff --git a/docs/cpp/search/classes_a.js b/docs/cpp/search/classes_a.js
index 30e3523..63b9a80 100644
--- a/docs/cpp/search/classes_a.js
+++ b/docs/cpp/search/classes_a.js
@@ -1,5 +1,5 @@
var searchData=
[
- ['timestamp_276',['Timestamp',['../classgraphar_1_1_timestamp.html',1,'graphar']]],
- ['typetoarrowtype_277',['TypeToArrowType',['../structgraphar_1_1_type_to_arrow_type.html',1,'graphar']]]
+ ['timestamp_280',['Timestamp',['../classgraphar_1_1_timestamp.html',1,'graphar']]],
+ ['typetoarrowtype_281',['TypeToArrowType',['../structgraphar_1_1_type_to_arrow_type.html',1,'graphar']]]
];
diff --git a/docs/cpp/search/classes_b.js b/docs/cpp/search/classes_b.js
index 9226ebb..4dda013 100644
--- a/docs/cpp/search/classes_b.js
+++ b/docs/cpp/search/classes_b.js
@@ -1,5 +1,5 @@
var searchData=
[
- ['ubdedgescollection_278',['UBDEdgesCollection',['../classgraphar_1_1_u_b_d_edges_collection.html',1,'graphar']]],
- ['ubsedgescollection_279',['UBSEdgesCollection',['../classgraphar_1_1_u_b_s_edges_collection.html',1,'graphar']]]
+ ['ubdedgescollection_282',['UBDEdgesCollection',['../classgraphar_1_1_u_b_d_edges_collection.html',1,'graphar']]],
+ ['ubsedgescollection_283',['UBSEdgesCollection',['../classgraphar_1_1_u_b_s_edges_collection.html',1,'graphar']]]
];
diff --git a/docs/cpp/search/classes_c.js b/docs/cpp/search/classes_c.js
index 94892f6..d640897 100644
--- a/docs/cpp/search/classes_c.js
+++ b/docs/cpp/search/classes_c.js
@@ -1,14 +1,14 @@
var searchData=
[
- ['valuegetter_280',['ValueGetter',['../structgraphar_1_1util_1_1_value_getter.html',1,'graphar::util']]],
- ['valuegetter_3c_20std_3a_3astring_20_3e_281',['ValueGetter< std::string >',['../structgraphar_1_1util_1_1_value_getter_3_01std_1_1string_01_4.html',1,'graphar::util']]],
- ['vertex_282',['Vertex',['../classgraphar_1_1builder_1_1_vertex.html',1,'graphar::builder::Vertex'],['../classgraphar_1_1_vertex.html',1,'graphar::Vertex']]],
- ['vertexchunkinfowriter_283',['VertexChunkInfoWriter',['../classgraphar_1_1_vertex_chunk_info_writer.html',1,'graphar']]],
- ['vertexinfo_284',['VertexInfo',['../classgraphar_1_1_vertex_info.html',1,'graphar']]],
- ['vertexiter_285',['VertexIter',['../classgraphar_1_1_vertex_iter.html',1,'graphar']]],
- ['vertexpropertyarrowchunkreader_286',['VertexPropertyArrowChunkReader',['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html',1,'graphar']]],
- ['vertexpropertychunkinforeader_287',['VertexPropertyChunkInfoReader',['../classgraphar_1_1_vertex_property_chunk_info_reader.html',1,'graphar']]],
- ['vertexpropertywriter_288',['VertexPropertyWriter',['../classgraphar_1_1_vertex_property_writer.html',1,'graphar']]],
- ['verticesbuilder_289',['VerticesBuilder',['../classgraphar_1_1builder_1_1_vertices_builder.html',1,'graphar::builder']]],
- ['verticescollection_290',['VerticesCollection',['../classgraphar_1_1_vertices_collection.html',1,'graphar']]]
+ ['valuegetter_284',['ValueGetter',['../structgraphar_1_1util_1_1_value_getter.html',1,'graphar::util']]],
+ ['valuegetter_3c_20std_3a_3astring_20_3e_285',['ValueGetter< std::string >',['../structgraphar_1_1util_1_1_value_getter_3_01std_1_1string_01_4.html',1,'graphar::util']]],
+ ['vertex_286',['Vertex',['../classgraphar_1_1builder_1_1_vertex.html',1,'graphar::builder::Vertex'],['../classgraphar_1_1_vertex.html',1,'graphar::Vertex']]],
+ ['vertexchunkinfowriter_287',['VertexChunkInfoWriter',['../classgraphar_1_1_vertex_chunk_info_writer.html',1,'graphar']]],
+ ['vertexinfo_288',['VertexInfo',['../classgraphar_1_1_vertex_info.html',1,'graphar']]],
+ ['vertexiter_289',['VertexIter',['../classgraphar_1_1_vertex_iter.html',1,'graphar']]],
+ ['vertexpropertyarrowchunkreader_290',['VertexPropertyArrowChunkReader',['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html',1,'graphar']]],
+ ['vertexpropertychunkinforeader_291',['VertexPropertyChunkInfoReader',['../classgraphar_1_1_vertex_property_chunk_info_reader.html',1,'graphar']]],
+ ['vertexpropertywriter_292',['VertexPropertyWriter',['../classgraphar_1_1_vertex_property_writer.html',1,'graphar']]],
+ ['verticesbuilder_293',['VerticesBuilder',['../classgraphar_1_1builder_1_1_vertices_builder.html',1,'graphar::builder']]],
+ ['verticescollection_294',['VerticesCollection',['../classgraphar_1_1_vertices_collection.html',1,'graphar']]]
];
diff --git a/docs/cpp/search/classes_d.js b/docs/cpp/search/classes_d.js
index bad4992..3317f6b 100644
--- a/docs/cpp/search/classes_d.js
+++ b/docs/cpp/search/classes_d.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['writeroptions_291',['WriterOptions',['../classgraphar_1_1_writer_options.html',1,'graphar']]]
+ ['writeroptions_295',['WriterOptions',['../classgraphar_1_1_writer_options.html',1,'graphar']]]
];
diff --git a/docs/cpp/search/classes_e.js b/docs/cpp/search/classes_e.js
index 5888b4b..da31f35 100644
--- a/docs/cpp/search/classes_e.js
+++ b/docs/cpp/search/classes_e.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['yaml_292',['Yaml',['../classgraphar_1_1_yaml.html',1,'graphar']]]
+ ['yaml_296',['Yaml',['../classgraphar_1_1_yaml.html',1,'graphar']]]
];
diff --git a/docs/cpp/search/functions_0.js b/docs/cpp/search/functions_0.js
index 33b7d8c..8495520 100644
--- a/docs/cpp/search/functions_0.js
+++ b/docs/cpp/search/functions_0.js
@@ -1,16 +1,16 @@
var searchData=
[
- ['addadjacentlist_293',['AddAdjacentList',['../classgraphar_1_1_edge_info.html#a6e5b4fdc98d8399564396fb63955c62a',1,'graphar::EdgeInfo']]],
- ['addedge_294',['AddEdge',['../classgraphar_1_1_graph_info.html#a8fdf1ff0ec57e3ca2e66dd4366e390aa',1,'graphar::GraphInfo::AddEdge()'],['../classgraphar_1_1builder_1_1_edges_builder.html#af2dcddb8205a47a19a1f013373600ce0',1,'graphar::builder::EdgesBuilder::AddEdge()']]],
- ['addproperty_295',['AddProperty',['../classgraphar_1_1builder_1_1_edge.html#a74045a47191931c4078003a311128693',1,'graphar::builder::Edge::AddProperty()'],['../classgraphar_1_1builder_1_1_vertex.html#a32f5e971b9d675f3f1b8154189994226',1,'graphar::builder::Vertex::AddProperty()']]],
- ['addpropertygroup_296',['AddPropertyGroup',['../classgraphar_1_1_vertex_info.html#a4a70be2aa82d5c435b3271ae766bb54d',1,'graphar::VertexInfo::AddPropertyGroup()'],['../classgraphar_1_1_edge_info.html#a9620f838addfdcb892b30e80e2cc4239',1,'graphar::EdgeInfo::AddPropertyGroup()']]],
- ['addvertex_297',['AddVertex',['../classgraphar_1_1_graph_info.html#a44e38c74dc765a56f8f0d200774d8180',1,'graphar::GraphInfo::AddVertex()'],['../classgraphar_1_1builder_1_1_vertices_builder.html#a6ea4ec6528ca89d08e9c413dea1a06ca',1,'graphar::builder::VerticesBuilder::AddVertex()']]],
- ['adjacentlist_298',['AdjacentList',['../classgraphar_1_1_adjacent_list.html#ab31cbdbaae74305f7bf3ffbd76c93efc',1,'graphar::AdjacentList']]],
- ['adjlistarrowchunkreader_299',['AdjListArrowChunkReader',['../classgraphar_1_1_adj_list_arrow_chunk_reader.html#a91731fb764a5b3ca935e15e36300fe46',1,'graphar::AdjListArrowChunkReader::AdjListArrowChunkReader(const std::shared_ptr< EdgeInfo > &edge_info, AdjListType adj_list_type, const std::string &prefix)'],['../classgraphar_1_1_adj_list_arrow_chunk_reader.html#a28cde9de63bcb042b61de37244442d1e',1,'graphar::AdjListArrowChunkReader::AdjListArrowChunkReader(const AdjListA [...]
- ['adjlistchunkinforeader_300',['AdjListChunkInfoReader',['../classgraphar_1_1_adj_list_chunk_info_reader.html#aecda9f2feb83874068d019e29c9ad44b',1,'graphar::AdjListChunkInfoReader']]],
- ['adjlistoffsetarrowchunkreader_301',['AdjListOffsetArrowChunkReader',['../classgraphar_1_1_adj_list_offset_arrow_chunk_reader.html#a22b31574cd4c3e5539c47e84ec308f10',1,'graphar::AdjListOffsetArrowChunkReader']]],
- ['adjlistoffsetchunkinforeader_302',['AdjListOffsetChunkInfoReader',['../classgraphar_1_1_adj_list_offset_chunk_info_reader.html#a7ff5025bba673ce5ad42df8f1c3f5cac',1,'graphar::AdjListOffsetChunkInfoReader']]],
- ['adjlistpropertyarrowchunkreader_303',['AdjListPropertyArrowChunkReader',['../classgraphar_1_1_adj_list_property_arrow_chunk_reader.html#a4a8d7cabf311ed3179710d319451f30a',1,'graphar::AdjListPropertyArrowChunkReader::AdjListPropertyArrowChunkReader(const std::shared_ptr< EdgeInfo > &edge_info, const std::shared_ptr< PropertyGroup > &property_group, AdjListType adj_list_type, const std::string prefix, const util::FilterOptions &options={})'],['../classgraphar_1_ [...]
- ['adjlistpropertychunkinforeader_304',['AdjListPropertyChunkInfoReader',['../classgraphar_1_1_adj_list_property_chunk_info_reader.html#a6cf17b5db2430293a05e997d30c47324',1,'graphar::AdjListPropertyChunkInfoReader']]],
- ['arrowerror_305',['ArrowError',['../classgraphar_1_1_status.html#a521553014a9f2a6d44f5d71a91a3cb72',1,'graphar::Status']]]
+ ['addadjacentlist_297',['AddAdjacentList',['../classgraphar_1_1_edge_info.html#a6e5b4fdc98d8399564396fb63955c62a',1,'graphar::EdgeInfo']]],
+ ['addedge_298',['AddEdge',['../classgraphar_1_1_graph_info.html#a8fdf1ff0ec57e3ca2e66dd4366e390aa',1,'graphar::GraphInfo::AddEdge()'],['../classgraphar_1_1builder_1_1_edges_builder.html#af2dcddb8205a47a19a1f013373600ce0',1,'graphar::builder::EdgesBuilder::AddEdge()']]],
+ ['addproperty_299',['AddProperty',['../classgraphar_1_1builder_1_1_edge.html#a74045a47191931c4078003a311128693',1,'graphar::builder::Edge::AddProperty()'],['../classgraphar_1_1builder_1_1_vertex.html#a32f5e971b9d675f3f1b8154189994226',1,'graphar::builder::Vertex::AddProperty()']]],
+ ['addpropertygroup_300',['AddPropertyGroup',['../classgraphar_1_1_vertex_info.html#a4a70be2aa82d5c435b3271ae766bb54d',1,'graphar::VertexInfo::AddPropertyGroup()'],['../classgraphar_1_1_edge_info.html#a9620f838addfdcb892b30e80e2cc4239',1,'graphar::EdgeInfo::AddPropertyGroup()']]],
+ ['addvertex_301',['AddVertex',['../classgraphar_1_1_graph_info.html#a44e38c74dc765a56f8f0d200774d8180',1,'graphar::GraphInfo::AddVertex()'],['../classgraphar_1_1builder_1_1_vertices_builder.html#a6ea4ec6528ca89d08e9c413dea1a06ca',1,'graphar::builder::VerticesBuilder::AddVertex()']]],
+ ['adjacentlist_302',['AdjacentList',['../classgraphar_1_1_adjacent_list.html#ab31cbdbaae74305f7bf3ffbd76c93efc',1,'graphar::AdjacentList']]],
+ ['adjlistarrowchunkreader_303',['AdjListArrowChunkReader',['../classgraphar_1_1_adj_list_arrow_chunk_reader.html#a91731fb764a5b3ca935e15e36300fe46',1,'graphar::AdjListArrowChunkReader::AdjListArrowChunkReader(const std::shared_ptr< EdgeInfo > &edge_info, AdjListType adj_list_type, const std::string &prefix)'],['../classgraphar_1_1_adj_list_arrow_chunk_reader.html#a28cde9de63bcb042b61de37244442d1e',1,'graphar::AdjListArrowChunkReader::AdjListArrowChunkReader(const AdjListA [...]
+ ['adjlistchunkinforeader_304',['AdjListChunkInfoReader',['../classgraphar_1_1_adj_list_chunk_info_reader.html#aecda9f2feb83874068d019e29c9ad44b',1,'graphar::AdjListChunkInfoReader']]],
+ ['adjlistoffsetarrowchunkreader_305',['AdjListOffsetArrowChunkReader',['../classgraphar_1_1_adj_list_offset_arrow_chunk_reader.html#a22b31574cd4c3e5539c47e84ec308f10',1,'graphar::AdjListOffsetArrowChunkReader']]],
+ ['adjlistoffsetchunkinforeader_306',['AdjListOffsetChunkInfoReader',['../classgraphar_1_1_adj_list_offset_chunk_info_reader.html#a7ff5025bba673ce5ad42df8f1c3f5cac',1,'graphar::AdjListOffsetChunkInfoReader']]],
+ ['adjlistpropertyarrowchunkreader_307',['AdjListPropertyArrowChunkReader',['../classgraphar_1_1_adj_list_property_arrow_chunk_reader.html#a4a8d7cabf311ed3179710d319451f30a',1,'graphar::AdjListPropertyArrowChunkReader::AdjListPropertyArrowChunkReader(const std::shared_ptr< EdgeInfo > &edge_info, const std::shared_ptr< PropertyGroup > &property_group, AdjListType adj_list_type, const std::string prefix, const util::FilterOptions &options={})'],['../classgraphar_1_ [...]
+ ['adjlistpropertychunkinforeader_308',['AdjListPropertyChunkInfoReader',['../classgraphar_1_1_adj_list_property_chunk_info_reader.html#a6cf17b5db2430293a05e997d30c47324',1,'graphar::AdjListPropertyChunkInfoReader']]],
+ ['arrowerror_309',['ArrowError',['../classgraphar_1_1_status.html#a521553014a9f2a6d44f5d71a91a3cb72',1,'graphar::Status']]]
];
diff --git a/docs/cpp/search/functions_1.js b/docs/cpp/search/functions_1.js
index c5ac877..75ef807 100644
--- a/docs/cpp/search/functions_1.js
+++ b/docs/cpp/search/functions_1.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['begin_306',['begin',['../classgraphar_1_1_vertices_collection.html#ab2da3f53d9a0e19c933835c3741584fd',1,'graphar::VerticesCollection::begin()'],['../classgraphar_1_1_edges_collection.html#a8fd986cb8aca89d1212a2aa35a8eb3d7',1,'graphar::EdgesCollection::begin()']]]
+ ['begin_310',['begin',['../classgraphar_1_1_vertices_collection.html#ab2da3f53d9a0e19c933835c3741584fd',1,'graphar::VerticesCollection::begin()'],['../classgraphar_1_1_edges_collection.html#a8fd986cb8aca89d1212a2aa35a8eb3d7',1,'graphar::EdgesCollection::begin()']]]
];
diff --git a/docs/cpp/search/functions_10.js b/docs/cpp/search/functions_10.js
index b117e40..9bb2593 100644
--- a/docs/cpp/search/functions_10.js
+++ b/docs/cpp/search/functions_10.js
@@ -1,18 +1,18 @@
var searchData=
[
- ['save_433',['Save',['../classgraphar_1_1_edge_info.html#a1e95f986bd8c5191f438705b195191e3',1,'graphar::EdgeInfo::Save()'],['../classgraphar_1_1_vertex_info.html#afd42b99a43507a9edb1825e7e104d1e7',1,'graphar::VertexInfo::Save()'],['../classgraphar_1_1_graph_info.html#a339f08f5a1427aadc91d30d41dccced3',1,'graphar::GraphInfo::Save()']]],
- ['seek_434',['seek',['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html#a7222b8811219e285a51be607beaafaa0',1,'graphar::VertexPropertyArrowChunkReader::seek()'],['../classgraphar_1_1_adj_list_arrow_chunk_reader.html#a2be422d83a4be97a41a696473fc18911',1,'graphar::AdjListArrowChunkReader::seek()'],['../classgraphar_1_1_adj_list_offset_arrow_chunk_reader.html#a169a3a82e445ab41d3568cb846a565e7',1,'graphar::AdjListOffsetArrowChunkReader::seek()'],['../classgraphar_1_1_adj_list_prop [...]
- ['seek_5fchunk_5findex_435',['seek_chunk_index',['../classgraphar_1_1_adj_list_property_arrow_chunk_reader.html#a43f9942247308265666c351c5c19e52b',1,'graphar::AdjListPropertyArrowChunkReader::seek_chunk_index()'],['../classgraphar_1_1_adj_list_arrow_chunk_reader.html#aa18bd4c0daba0b681702a4e79b688b1f',1,'graphar::AdjListArrowChunkReader::seek_chunk_index(IdType vertex_chunk_index, IdType chunk_index=0)']]],
- ['seek_5fdst_436',['seek_dst',['../classgraphar_1_1_adj_list_arrow_chunk_reader.html#af9aed01c37c9b588bca7c16d3e744c0e',1,'graphar::AdjListArrowChunkReader::seek_dst()'],['../classgraphar_1_1_adj_list_property_arrow_chunk_reader.html#a1adc64854a6ee06781a559e6c1a87618',1,'graphar::AdjListPropertyArrowChunkReader::seek_dst()'],['../classgraphar_1_1_adj_list_chunk_info_reader.html#a031d114f5f7de849902168ae3a25ae59',1,'graphar::AdjListChunkInfoReader::seek_dst()'],['../classgraphar_1_1_adj [...]
- ['seek_5fsrc_437',['seek_src',['../classgraphar_1_1_adj_list_arrow_chunk_reader.html#a05ec017e937e1ac8367af0bf3b0533a9',1,'graphar::AdjListArrowChunkReader::seek_src()'],['../classgraphar_1_1_adj_list_property_arrow_chunk_reader.html#a19f2edd414991f5ff030896cbf5cda63',1,'graphar::AdjListPropertyArrowChunkReader::seek_src()'],['../classgraphar_1_1_adj_list_chunk_info_reader.html#a4f8cf5d9910f57c68575a69a4c6eb1dc',1,'graphar::AdjListChunkInfoReader::seek_src()'],['../classgraphar_1_1_adj [...]
- ['select_438',['Select',['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html#abbd481e5ab71e536e878ec5aad9ff185',1,'graphar::VertexPropertyArrowChunkReader::Select()'],['../classgraphar_1_1_adj_list_property_arrow_chunk_reader.html#af44cd0428593d424c30c991b6cfeac96',1,'graphar::AdjListPropertyArrowChunkReader::Select()']]],
- ['setid_439',['SetId',['../classgraphar_1_1builder_1_1_vertex.html#a0e9a9b63017733934286cd99507d7268',1,'graphar::builder::Vertex']]],
- ['setvalidatelevel_440',['SetValidateLevel',['../classgraphar_1_1_vertex_property_writer.html#a9ef1eba6f5508f5a83423bbe8bb12c9b',1,'graphar::VertexPropertyWriter::SetValidateLevel()'],['../classgraphar_1_1_edge_chunk_writer.html#a1f66533c5776b9d83a53afaf2bed5985',1,'graphar::EdgeChunkWriter::SetValidateLevel()'],['../classgraphar_1_1builder_1_1_edges_builder.html#a6b32c705b64b306b80ab037875ef05bf',1,'graphar::builder::EdgesBuilder::SetValidateLevel()'],['../classgraphar_1_1builder_1_1_ [...]
- ['setwriteroptions_441',['SetWriterOptions',['../classgraphar_1_1builder_1_1_edges_builder.html#ab95a819d161c98ff26a1a7b3744f4d5d',1,'graphar::builder::EdgesBuilder::SetWriterOptions()'],['../classgraphar_1_1builder_1_1_vertices_builder.html#a71995d500d250dcde4a720fc7784b4c4',1,'graphar::builder::VerticesBuilder::SetWriterOptions()']]],
- ['size_442',['size',['../classgraphar_1_1_vertices_collection.html#aa748d07fd3a49b8383d99bf34f2eb559',1,'graphar::VerticesCollection::size()'],['../classgraphar_1_1_edges_collection.html#a7daf9ec4ef2b713e4e90b9abd5bacfa3',1,'graphar::EdgesCollection::size()']]],
- ['sortandwriteadjlisttable_443',['SortAndWriteAdjListTable',['../classgraphar_1_1_edge_chunk_writer.html#a69144b6a4bd4087b7401787d641ca772',1,'graphar::EdgeChunkWriter']]],
- ['sortandwritepropertytable_444',['SortAndWritePropertyTable',['../classgraphar_1_1_edge_chunk_writer.html#ab859c5eb1f10b88c5d0af6ab71e0ec79',1,'graphar::EdgeChunkWriter::SortAndWritePropertyTable(const std::shared_ptr< arrow::Table > &input_table, const std::shared_ptr< PropertyGroup > &property_group, IdType vertex_chunk_index, IdType start_chunk_index=0, ValidateLevel validate_level=ValidateLevel::default_validate) const'],['../classgraphar_1_1_edge_chunk_writer. [...]
- ['sortandwritetable_445',['SortAndWriteTable',['../classgraphar_1_1_edge_chunk_writer.html#aadbd1ad5299ab867d099ffc85528268a',1,'graphar::EdgeChunkWriter']]],
- ['source_446',['source',['../classgraphar_1_1_edge.html#a145a461cfb96e4c468bc7840324ef109',1,'graphar::Edge::source()'],['../classgraphar_1_1_edge_iter.html#a04ab347b43542948dafd64f52185619a',1,'graphar::EdgeIter::source()']]],
- ['status_447',['Status',['../classgraphar_1_1_status.html#a0a860f829759c387e55e5d72e2253e36',1,'graphar::Status::Status() noexcept'],['../classgraphar_1_1_status.html#a003d78f26f5cbad3615e2ee5944b76bb',1,'graphar::Status::Status(StatusCode code, const std::string &msg)'],['../classgraphar_1_1_status.html#ad2e06c777504a46a8d4dd959aa46f106',1,'graphar::Status::Status(const Status &s)'],['../classgraphar_1_1_status.html#adb3d43ca307b4d68ba517de8025b6856',1,'graphar::Status::Status [...]
+ ['save_441',['Save',['../classgraphar_1_1_edge_info.html#a1e95f986bd8c5191f438705b195191e3',1,'graphar::EdgeInfo::Save()'],['../classgraphar_1_1_vertex_info.html#afd42b99a43507a9edb1825e7e104d1e7',1,'graphar::VertexInfo::Save()'],['../classgraphar_1_1_graph_info.html#a339f08f5a1427aadc91d30d41dccced3',1,'graphar::GraphInfo::Save()']]],
+ ['seek_442',['seek',['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html#a7222b8811219e285a51be607beaafaa0',1,'graphar::VertexPropertyArrowChunkReader::seek()'],['../classgraphar_1_1_adj_list_arrow_chunk_reader.html#a2be422d83a4be97a41a696473fc18911',1,'graphar::AdjListArrowChunkReader::seek()'],['../classgraphar_1_1_adj_list_offset_arrow_chunk_reader.html#a169a3a82e445ab41d3568cb846a565e7',1,'graphar::AdjListOffsetArrowChunkReader::seek()'],['../classgraphar_1_1_adj_list_prop [...]
+ ['seek_5fchunk_5findex_443',['seek_chunk_index',['../classgraphar_1_1_adj_list_property_arrow_chunk_reader.html#a43f9942247308265666c351c5c19e52b',1,'graphar::AdjListPropertyArrowChunkReader::seek_chunk_index()'],['../classgraphar_1_1_adj_list_arrow_chunk_reader.html#aa18bd4c0daba0b681702a4e79b688b1f',1,'graphar::AdjListArrowChunkReader::seek_chunk_index(IdType vertex_chunk_index, IdType chunk_index=0)']]],
+ ['seek_5fdst_444',['seek_dst',['../classgraphar_1_1_adj_list_arrow_chunk_reader.html#af9aed01c37c9b588bca7c16d3e744c0e',1,'graphar::AdjListArrowChunkReader::seek_dst()'],['../classgraphar_1_1_adj_list_property_arrow_chunk_reader.html#a1adc64854a6ee06781a559e6c1a87618',1,'graphar::AdjListPropertyArrowChunkReader::seek_dst()'],['../classgraphar_1_1_adj_list_chunk_info_reader.html#a031d114f5f7de849902168ae3a25ae59',1,'graphar::AdjListChunkInfoReader::seek_dst()'],['../classgraphar_1_1_adj [...]
+ ['seek_5fsrc_445',['seek_src',['../classgraphar_1_1_adj_list_arrow_chunk_reader.html#a05ec017e937e1ac8367af0bf3b0533a9',1,'graphar::AdjListArrowChunkReader::seek_src()'],['../classgraphar_1_1_adj_list_property_arrow_chunk_reader.html#a19f2edd414991f5ff030896cbf5cda63',1,'graphar::AdjListPropertyArrowChunkReader::seek_src()'],['../classgraphar_1_1_adj_list_chunk_info_reader.html#a4f8cf5d9910f57c68575a69a4c6eb1dc',1,'graphar::AdjListChunkInfoReader::seek_src()'],['../classgraphar_1_1_adj [...]
+ ['select_446',['Select',['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html#abbd481e5ab71e536e878ec5aad9ff185',1,'graphar::VertexPropertyArrowChunkReader::Select()'],['../classgraphar_1_1_adj_list_property_arrow_chunk_reader.html#af44cd0428593d424c30c991b6cfeac96',1,'graphar::AdjListPropertyArrowChunkReader::Select()']]],
+ ['setid_447',['SetId',['../classgraphar_1_1builder_1_1_vertex.html#a0e9a9b63017733934286cd99507d7268',1,'graphar::builder::Vertex']]],
+ ['setvalidatelevel_448',['SetValidateLevel',['../classgraphar_1_1_vertex_property_writer.html#a9ef1eba6f5508f5a83423bbe8bb12c9b',1,'graphar::VertexPropertyWriter::SetValidateLevel()'],['../classgraphar_1_1_edge_chunk_writer.html#a1f66533c5776b9d83a53afaf2bed5985',1,'graphar::EdgeChunkWriter::SetValidateLevel()'],['../classgraphar_1_1builder_1_1_edges_builder.html#a6b32c705b64b306b80ab037875ef05bf',1,'graphar::builder::EdgesBuilder::SetValidateLevel()'],['../classgraphar_1_1builder_1_1_ [...]
+ ['setwriteroptions_449',['SetWriterOptions',['../classgraphar_1_1builder_1_1_edges_builder.html#ab95a819d161c98ff26a1a7b3744f4d5d',1,'graphar::builder::EdgesBuilder::SetWriterOptions()'],['../classgraphar_1_1builder_1_1_vertices_builder.html#a71995d500d250dcde4a720fc7784b4c4',1,'graphar::builder::VerticesBuilder::SetWriterOptions()']]],
+ ['size_450',['size',['../classgraphar_1_1_vertices_collection.html#aa748d07fd3a49b8383d99bf34f2eb559',1,'graphar::VerticesCollection::size()'],['../classgraphar_1_1_edges_collection.html#a7daf9ec4ef2b713e4e90b9abd5bacfa3',1,'graphar::EdgesCollection::size()']]],
+ ['sortandwriteadjlisttable_451',['SortAndWriteAdjListTable',['../classgraphar_1_1_edge_chunk_writer.html#a69144b6a4bd4087b7401787d641ca772',1,'graphar::EdgeChunkWriter']]],
+ ['sortandwritepropertytable_452',['SortAndWritePropertyTable',['../classgraphar_1_1_edge_chunk_writer.html#ab859c5eb1f10b88c5d0af6ab71e0ec79',1,'graphar::EdgeChunkWriter::SortAndWritePropertyTable(const std::shared_ptr< arrow::Table > &input_table, const std::shared_ptr< PropertyGroup > &property_group, IdType vertex_chunk_index, IdType start_chunk_index=0, ValidateLevel validate_level=ValidateLevel::default_validate) const'],['../classgraphar_1_1_edge_chunk_writer. [...]
+ ['sortandwritetable_453',['SortAndWriteTable',['../classgraphar_1_1_edge_chunk_writer.html#aadbd1ad5299ab867d099ffc85528268a',1,'graphar::EdgeChunkWriter']]],
+ ['source_454',['source',['../classgraphar_1_1_edge.html#a145a461cfb96e4c468bc7840324ef109',1,'graphar::Edge::source()'],['../classgraphar_1_1_edge_iter.html#a04ab347b43542948dafd64f52185619a',1,'graphar::EdgeIter::source()']]],
+ ['status_455',['Status',['../classgraphar_1_1_status.html#a0a860f829759c387e55e5d72e2253e36',1,'graphar::Status::Status() noexcept'],['../classgraphar_1_1_status.html#a003d78f26f5cbad3615e2ee5944b76bb',1,'graphar::Status::Status(StatusCode code, const std::string &msg)'],['../classgraphar_1_1_status.html#ad2e06c777504a46a8d4dd959aa46f106',1,'graphar::Status::Status(const Status &s)'],['../classgraphar_1_1_status.html#adb3d43ca307b4d68ba517de8025b6856',1,'graphar::Status::Status [...]
];
diff --git a/docs/cpp/search/functions_11.js b/docs/cpp/search/functions_11.js
index 6ccfcdd..31015ce 100644
--- a/docs/cpp/search/functions_11.js
+++ b/docs/cpp/search/functions_11.js
@@ -1,6 +1,6 @@
var searchData=
[
- ['to_5fbegin_448',['to_begin',['../classgraphar_1_1_edge_iter.html#a3be552f2d7b060d5f87c2191e35253b8',1,'graphar::EdgeIter']]],
- ['tostring_449',['ToString',['../classgraphar_1_1_info_version.html#a4e0d219b21a24894964b01bc8ddda3c3',1,'graphar::InfoVersion']]],
- ['typeerror_450',['TypeError',['../classgraphar_1_1_status.html#a3335cf4bf5cd222d5e29b01fe95e919a',1,'graphar::Status']]]
+ ['to_5fbegin_456',['to_begin',['../classgraphar_1_1_edge_iter.html#a3be552f2d7b060d5f87c2191e35253b8',1,'graphar::EdgeIter']]],
+ ['tostring_457',['ToString',['../classgraphar_1_1_info_version.html#a4e0d219b21a24894964b01bc8ddda3c3',1,'graphar::InfoVersion']]],
+ ['typeerror_458',['TypeError',['../classgraphar_1_1_status.html#a3335cf4bf5cd222d5e29b01fe95e919a',1,'graphar::Status']]]
];
diff --git a/docs/cpp/search/functions_12.js b/docs/cpp/search/functions_12.js
index 2cc6511..d52eb96 100644
--- a/docs/cpp/search/functions_12.js
+++ b/docs/cpp/search/functions_12.js
@@ -1,7 +1,7 @@
var searchData=
[
- ['ubdedgescollection_451',['UBDEdgesCollection',['../classgraphar_1_1_u_b_d_edges_collection.html#aef2d69ca4ae1b6cba62e42417ed80364',1,'graphar::UBDEdgesCollection']]],
- ['ubsedgescollection_452',['UBSEdgesCollection',['../classgraphar_1_1_u_b_s_edges_collection.html#a78ba5d25060dda524a7c51e591527a1c',1,'graphar::UBSEdgesCollection']]],
- ['unknownerror_453',['UnknownError',['../classgraphar_1_1_status.html#a4a45918d3b4f77af5a794fd8f2245ab2',1,'graphar::Status']]],
- ['user_5fdefine_5ftypes_454',['user_define_types',['../classgraphar_1_1_info_version.html#abb46ad5fe0cdb63ca5170ec9671c4e0b',1,'graphar::InfoVersion']]]
+ ['ubdedgescollection_459',['UBDEdgesCollection',['../classgraphar_1_1_u_b_d_edges_collection.html#aef2d69ca4ae1b6cba62e42417ed80364',1,'graphar::UBDEdgesCollection']]],
+ ['ubsedgescollection_460',['UBSEdgesCollection',['../classgraphar_1_1_u_b_s_edges_collection.html#a78ba5d25060dda524a7c51e591527a1c',1,'graphar::UBSEdgesCollection']]],
+ ['unknownerror_461',['UnknownError',['../classgraphar_1_1_status.html#a4a45918d3b4f77af5a794fd8f2245ab2',1,'graphar::Status']]],
+ ['user_5fdefine_5ftypes_462',['user_define_types',['../classgraphar_1_1_info_version.html#abb46ad5fe0cdb63ca5170ec9671c4e0b',1,'graphar::InfoVersion']]]
];
diff --git a/docs/cpp/search/functions_13.js b/docs/cpp/search/functions_13.js
index 8713747..6babbdd 100644
--- a/docs/cpp/search/functions_13.js
+++ b/docs/cpp/search/functions_13.js
@@ -1,16 +1,16 @@
var searchData=
[
- ['version_455',['version',['../classgraphar_1_1_edge_info.html#a9440bef05f4fa689662f26a9ef0117c1',1,'graphar::EdgeInfo::version()'],['../classgraphar_1_1_graph_info.html#aeb68a7550c63365d8093136601a3aeee',1,'graphar::GraphInfo::version()'],['../classgraphar_1_1_info_version.html#adf3934d5a05e1f86a5096e0ff9a09b78',1,'graphar::InfoVersion::version()'],['../classgraphar_1_1_vertex_info.html#a47c84aab28674b5250a26c97806f2f48',1,'graphar::VertexInfo::version()']]],
- ['vertex_456',['Vertex',['../classgraphar_1_1_vertex.html#aff8224ea52a0a08c3e07d07d1184ccaf',1,'graphar::Vertex::Vertex()'],['../classgraphar_1_1builder_1_1_vertex.html#ad4b0c92a74322ce0be53523fd254382f',1,'graphar::builder::Vertex::Vertex()']]],
- ['vertexchunkinfowriter_457',['VertexChunkInfoWriter',['../classgraphar_1_1_vertex_chunk_info_writer.html#af7f075dd7412ad38175eb1e09de9158d',1,'graphar::VertexChunkInfoWriter']]],
- ['vertexinfo_458',['VertexInfo',['../classgraphar_1_1_vertex_info.html#acddb12cfcf7c6bfe1f1937f984828312',1,'graphar::VertexInfo']]],
- ['vertexinfonum_459',['VertexInfoNum',['../classgraphar_1_1_graph_info.html#aa384328a58c9138b5b77ea6172199d07',1,'graphar::GraphInfo']]],
- ['vertexiter_460',['VertexIter',['../classgraphar_1_1_vertex_iter.html#a1c6d6fa3d58931f929f7e2cd75b67da5',1,'graphar::VertexIter::VertexIter(const std::shared_ptr< VertexInfo > &vertex_info, const std::string &prefix, IdType offset, const std::vector< std::string > &labels, const bool &is_filtered=false, const std::vector< IdType > &filtered_ids={}) noexcept'],['../classgraphar_1_1_vertex_iter.html#a995e8515fdc79f97d987b5203f235348',1,'graphar::Ver [...]
- ['vertexpropertyarrowchunkreader_461',['VertexPropertyArrowChunkReader',['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html#a44be6db94a28763a095ebc0e578a9916',1,'graphar::VertexPropertyArrowChunkReader::VertexPropertyArrowChunkReader(const std::shared_ptr< VertexInfo > &vertex_info, const std::shared_ptr< PropertyGroup > &property_group, const std::string &prefix, const util::FilterOptions &options={})'],['../classgraphar_1_1_vertex_property_arrow_ [...]
- ['vertexpropertychunkinforeader_462',['VertexPropertyChunkInfoReader',['../classgraphar_1_1_vertex_property_chunk_info_reader.html#a3ebfb96e4e9b0042d0cb0aa65fbc95a8',1,'graphar::VertexPropertyChunkInfoReader']]],
- ['vertexpropertywriter_463',['VertexPropertyWriter',['../classgraphar_1_1_vertex_property_writer.html#a47e13b7e46a9c1dacc069ca4f789b74f',1,'graphar::VertexPropertyWriter']]],
- ['verticesbuilder_464',['VerticesBuilder',['../classgraphar_1_1builder_1_1_vertices_builder.html#acc85e675bdcdf0e0633a7871bf79bb57',1,'graphar::builder::VerticesBuilder']]],
- ['verticescollection_465',['VerticesCollection',['../classgraphar_1_1_vertices_collection.html#ad69c997aae186d10725bf5c907d1d123',1,'graphar::VerticesCollection']]],
- ['verticeswithlabel_466',['verticesWithLabel',['../classgraphar_1_1_vertices_collection.html#a8b65a9581d99b60d66dd6cda82f936f8',1,'graphar::VerticesCollection::verticesWithLabel(const std::string &filter_label, const std::shared_ptr< GraphInfo > &graph_info, const std::string &type)'],['../classgraphar_1_1_vertices_collection.html#a9c1097cbc912a9576125e66c3686c19b',1,'graphar::VerticesCollection::verticesWithLabel(const std::string &filter_label, const std::shared [...]
- ['verticeswithmultiplelabels_467',['verticesWithMultipleLabels',['../classgraphar_1_1_vertices_collection.html#a82c4485dcd473fed76b8b8fe2d863965',1,'graphar::VerticesCollection::verticesWithMultipleLabels(const std::vector< std::string > &filter_labels, const std::shared_ptr< GraphInfo > &graph_info, const std::string &type)'],['../classgraphar_1_1_vertices_collection.html#a804247ead280d1a8a1c528f49ded9e68',1,'graphar::VerticesCollection::verticesWithMultipleLab [...]
+ ['version_463',['version',['../classgraphar_1_1_edge_info.html#a9440bef05f4fa689662f26a9ef0117c1',1,'graphar::EdgeInfo::version()'],['../classgraphar_1_1_graph_info.html#aeb68a7550c63365d8093136601a3aeee',1,'graphar::GraphInfo::version()'],['../classgraphar_1_1_info_version.html#adf3934d5a05e1f86a5096e0ff9a09b78',1,'graphar::InfoVersion::version()'],['../classgraphar_1_1_vertex_info.html#a47c84aab28674b5250a26c97806f2f48',1,'graphar::VertexInfo::version()']]],
+ ['vertex_464',['Vertex',['../classgraphar_1_1_vertex.html#aff8224ea52a0a08c3e07d07d1184ccaf',1,'graphar::Vertex::Vertex()'],['../classgraphar_1_1builder_1_1_vertex.html#ad4b0c92a74322ce0be53523fd254382f',1,'graphar::builder::Vertex::Vertex()']]],
+ ['vertexchunkinfowriter_465',['VertexChunkInfoWriter',['../classgraphar_1_1_vertex_chunk_info_writer.html#af7f075dd7412ad38175eb1e09de9158d',1,'graphar::VertexChunkInfoWriter']]],
+ ['vertexinfo_466',['VertexInfo',['../classgraphar_1_1_vertex_info.html#acddb12cfcf7c6bfe1f1937f984828312',1,'graphar::VertexInfo']]],
+ ['vertexinfonum_467',['VertexInfoNum',['../classgraphar_1_1_graph_info.html#aa384328a58c9138b5b77ea6172199d07',1,'graphar::GraphInfo']]],
+ ['vertexiter_468',['VertexIter',['../classgraphar_1_1_vertex_iter.html#a1c6d6fa3d58931f929f7e2cd75b67da5',1,'graphar::VertexIter::VertexIter(const std::shared_ptr< VertexInfo > &vertex_info, const std::string &prefix, IdType offset, const std::vector< std::string > &labels, const bool &is_filtered=false, const std::vector< IdType > &filtered_ids={}) noexcept'],['../classgraphar_1_1_vertex_iter.html#a995e8515fdc79f97d987b5203f235348',1,'graphar::Ver [...]
+ ['vertexpropertyarrowchunkreader_469',['VertexPropertyArrowChunkReader',['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html#a44be6db94a28763a095ebc0e578a9916',1,'graphar::VertexPropertyArrowChunkReader::VertexPropertyArrowChunkReader(const std::shared_ptr< VertexInfo > &vertex_info, const std::shared_ptr< PropertyGroup > &property_group, const std::string &prefix, const util::FilterOptions &options={})'],['../classgraphar_1_1_vertex_property_arrow_ [...]
+ ['vertexpropertychunkinforeader_470',['VertexPropertyChunkInfoReader',['../classgraphar_1_1_vertex_property_chunk_info_reader.html#a3ebfb96e4e9b0042d0cb0aa65fbc95a8',1,'graphar::VertexPropertyChunkInfoReader']]],
+ ['vertexpropertywriter_471',['VertexPropertyWriter',['../classgraphar_1_1_vertex_property_writer.html#a47e13b7e46a9c1dacc069ca4f789b74f',1,'graphar::VertexPropertyWriter']]],
+ ['verticesbuilder_472',['VerticesBuilder',['../classgraphar_1_1builder_1_1_vertices_builder.html#acc85e675bdcdf0e0633a7871bf79bb57',1,'graphar::builder::VerticesBuilder']]],
+ ['verticescollection_473',['VerticesCollection',['../classgraphar_1_1_vertices_collection.html#ad69c997aae186d10725bf5c907d1d123',1,'graphar::VerticesCollection']]],
+ ['verticeswithlabel_474',['verticesWithLabel',['../classgraphar_1_1_vertices_collection.html#a8b65a9581d99b60d66dd6cda82f936f8',1,'graphar::VerticesCollection::verticesWithLabel(const std::string &filter_label, const std::shared_ptr< GraphInfo > &graph_info, const std::string &type)'],['../classgraphar_1_1_vertices_collection.html#a9c1097cbc912a9576125e66c3686c19b',1,'graphar::VerticesCollection::verticesWithLabel(const std::string &filter_label, const std::shared [...]
+ ['verticeswithmultiplelabels_475',['verticesWithMultipleLabels',['../classgraphar_1_1_vertices_collection.html#a82c4485dcd473fed76b8b8fe2d863965',1,'graphar::VerticesCollection::verticesWithMultipleLabels(const std::vector< std::string > &filter_labels, const std::shared_ptr< GraphInfo > &graph_info, const std::string &type)'],['../classgraphar_1_1_vertices_collection.html#a804247ead280d1a8a1c528f49ded9e68',1,'graphar::VerticesCollection::verticesWithMultipleLab [...]
];
diff --git a/docs/cpp/search/functions_14.js b/docs/cpp/search/functions_14.js
index 6cd9e3e..412385c 100644
--- a/docs/cpp/search/functions_14.js
+++ b/docs/cpp/search/functions_14.js
@@ -1,17 +1,17 @@
var searchData=
[
- ['writeadjlistchunk_468',['WriteAdjListChunk',['../classgraphar_1_1_edge_chunk_writer.html#abbf227f722fcfaf5a330229d92dcc7d0',1,'graphar::EdgeChunkWriter']]],
- ['writeadjlisttable_469',['WriteAdjListTable',['../classgraphar_1_1_edge_chunk_writer.html#a7197f8501c2205dd6a5456d4bf1769fd',1,'graphar::EdgeChunkWriter']]],
- ['writechunk_470',['WriteChunk',['../classgraphar_1_1_vertex_property_writer.html#a5bad3bb184de34c951b1dea21cb1dcd5',1,'graphar::VertexPropertyWriter::WriteChunk(const std::shared_ptr< arrow::Table > &input_table, const std::shared_ptr< PropertyGroup > &property_group, IdType chunk_index, ValidateLevel validate_level=ValidateLevel::default_validate) const'],['../classgraphar_1_1_vertex_property_writer.html#a51de0fd2b7444c6a25ae36389b74bfd3',1,'graphar::VertexPropert [...]
- ['writeedgesnum_471',['WriteEdgesNum',['../classgraphar_1_1_edge_chunk_writer.html#abfa01f956f732e660eead056ce12f7c1',1,'graphar::EdgeChunkWriter']]],
- ['writelabelchunk_472',['WriteLabelChunk',['../classgraphar_1_1_vertex_property_writer.html#acc8026d1d2eaaf86f9c2d8d49c207f99',1,'graphar::VertexPropertyWriter']]],
- ['writelabeltable_473',['WriteLabelTable',['../classgraphar_1_1_vertex_property_writer.html#a001d330977bb6830bc78c42219f8c8a0',1,'graphar::VertexPropertyWriter']]],
- ['writelabeltabletofile_474',['WriteLabelTableToFile',['../classgraphar_1_1_file_system.html#ad48927d2fd542cc737cb16b7e529c0b6',1,'graphar::FileSystem']]],
- ['writeoffsetchunk_475',['WriteOffsetChunk',['../classgraphar_1_1_edge_chunk_writer.html#a9a9041e72a3d46e9fb8a2f1d2463489c',1,'graphar::EdgeChunkWriter']]],
- ['writepropertychunk_476',['WritePropertyChunk',['../classgraphar_1_1_edge_chunk_writer.html#a2552448a395acd1e3cc10e9db45ce877',1,'graphar::EdgeChunkWriter::WritePropertyChunk(const std::shared_ptr< arrow::Table > &input_table, const std::shared_ptr< PropertyGroup > &property_group, IdType vertex_chunk_index, IdType chunk_index, ValidateLevel validate_level=ValidateLevel::default_validate) const'],['../classgraphar_1_1_edge_chunk_writer.html#a48f3a7356d603416caf3aef [...]
- ['writepropertytable_477',['WritePropertyTable',['../classgraphar_1_1_edge_chunk_writer.html#a74d5ff66b247fb94b87db25442f98ee2',1,'graphar::EdgeChunkWriter::WritePropertyTable(const std::shared_ptr< arrow::Table > &input_table, const std::shared_ptr< PropertyGroup > &property_group, IdType vertex_chunk_index, IdType start_chunk_index=0, ValidateLevel validate_level=ValidateLevel::default_validate) const'],['../classgraphar_1_1_edge_chunk_writer.html#ac4d3a559f6508f1 [...]
- ['writetable_478',['WriteTable',['../classgraphar_1_1_vertex_property_writer.html#adea3f0326fad64bc061bc5b01790ab47',1,'graphar::VertexPropertyWriter::WriteTable(const std::shared_ptr< arrow::Table > &input_table, const std::shared_ptr< PropertyGroup > &property_group, IdType start_chunk_index, ValidateLevel validate_level=ValidateLevel::default_validate) const'],['../classgraphar_1_1_vertex_property_writer.html#aaa3107eb66941ceeb782280e3038ee4f',1,'graphar::VertexP [...]
- ['writetabletofile_479',['WriteTableToFile',['../classgraphar_1_1_file_system.html#af5c15ca6b858f7df89eea3e77319decf',1,'graphar::FileSystem']]],
- ['writevaluetofile_480',['WriteValueToFile',['../classgraphar_1_1_file_system.html#a474b6e6ba28a0114a1d84f4eb06a211b',1,'graphar::FileSystem']]],
- ['writeverticesnum_481',['WriteVerticesNum',['../classgraphar_1_1_vertex_property_writer.html#addf40fb82fe987af091278e01995b87a',1,'graphar::VertexPropertyWriter::WriteVerticesNum()'],['../classgraphar_1_1_edge_chunk_writer.html#af3796d4dd08e7d876281f53d039dad5f',1,'graphar::EdgeChunkWriter::WriteVerticesNum()']]]
+ ['writeadjlistchunk_476',['WriteAdjListChunk',['../classgraphar_1_1_edge_chunk_writer.html#abbf227f722fcfaf5a330229d92dcc7d0',1,'graphar::EdgeChunkWriter']]],
+ ['writeadjlisttable_477',['WriteAdjListTable',['../classgraphar_1_1_edge_chunk_writer.html#a7197f8501c2205dd6a5456d4bf1769fd',1,'graphar::EdgeChunkWriter']]],
+ ['writechunk_478',['WriteChunk',['../classgraphar_1_1_vertex_property_writer.html#a5bad3bb184de34c951b1dea21cb1dcd5',1,'graphar::VertexPropertyWriter::WriteChunk(const std::shared_ptr< arrow::Table > &input_table, const std::shared_ptr< PropertyGroup > &property_group, IdType chunk_index, ValidateLevel validate_level=ValidateLevel::default_validate) const'],['../classgraphar_1_1_vertex_property_writer.html#a51de0fd2b7444c6a25ae36389b74bfd3',1,'graphar::VertexPropert [...]
+ ['writeedgesnum_479',['WriteEdgesNum',['../classgraphar_1_1_edge_chunk_writer.html#abfa01f956f732e660eead056ce12f7c1',1,'graphar::EdgeChunkWriter']]],
+ ['writelabelchunk_480',['WriteLabelChunk',['../classgraphar_1_1_vertex_property_writer.html#acc8026d1d2eaaf86f9c2d8d49c207f99',1,'graphar::VertexPropertyWriter']]],
+ ['writelabeltable_481',['WriteLabelTable',['../classgraphar_1_1_vertex_property_writer.html#a001d330977bb6830bc78c42219f8c8a0',1,'graphar::VertexPropertyWriter']]],
+ ['writelabeltabletofile_482',['WriteLabelTableToFile',['../classgraphar_1_1_file_system.html#ad48927d2fd542cc737cb16b7e529c0b6',1,'graphar::FileSystem']]],
+ ['writeoffsetchunk_483',['WriteOffsetChunk',['../classgraphar_1_1_edge_chunk_writer.html#a9a9041e72a3d46e9fb8a2f1d2463489c',1,'graphar::EdgeChunkWriter']]],
+ ['writepropertychunk_484',['WritePropertyChunk',['../classgraphar_1_1_edge_chunk_writer.html#a2552448a395acd1e3cc10e9db45ce877',1,'graphar::EdgeChunkWriter::WritePropertyChunk(const std::shared_ptr< arrow::Table > &input_table, const std::shared_ptr< PropertyGroup > &property_group, IdType vertex_chunk_index, IdType chunk_index, ValidateLevel validate_level=ValidateLevel::default_validate) const'],['../classgraphar_1_1_edge_chunk_writer.html#a48f3a7356d603416caf3aef [...]
+ ['writepropertytable_485',['WritePropertyTable',['../classgraphar_1_1_edge_chunk_writer.html#a74d5ff66b247fb94b87db25442f98ee2',1,'graphar::EdgeChunkWriter::WritePropertyTable(const std::shared_ptr< arrow::Table > &input_table, const std::shared_ptr< PropertyGroup > &property_group, IdType vertex_chunk_index, IdType start_chunk_index=0, ValidateLevel validate_level=ValidateLevel::default_validate) const'],['../classgraphar_1_1_edge_chunk_writer.html#ac4d3a559f6508f1 [...]
+ ['writetable_486',['WriteTable',['../classgraphar_1_1_vertex_property_writer.html#adea3f0326fad64bc061bc5b01790ab47',1,'graphar::VertexPropertyWriter::WriteTable(const std::shared_ptr< arrow::Table > &input_table, const std::shared_ptr< PropertyGroup > &property_group, IdType start_chunk_index, ValidateLevel validate_level=ValidateLevel::default_validate) const'],['../classgraphar_1_1_vertex_property_writer.html#aaa3107eb66941ceeb782280e3038ee4f',1,'graphar::VertexP [...]
+ ['writetabletofile_487',['WriteTableToFile',['../classgraphar_1_1_file_system.html#af5c15ca6b858f7df89eea3e77319decf',1,'graphar::FileSystem']]],
+ ['writevaluetofile_488',['WriteValueToFile',['../classgraphar_1_1_file_system.html#a474b6e6ba28a0114a1d84f4eb06a211b',1,'graphar::FileSystem']]],
+ ['writeverticesnum_489',['WriteVerticesNum',['../classgraphar_1_1_vertex_property_writer.html#addf40fb82fe987af091278e01995b87a',1,'graphar::VertexPropertyWriter::WriteVerticesNum()'],['../classgraphar_1_1_edge_chunk_writer.html#af3796d4dd08e7d876281f53d039dad5f',1,'graphar::EdgeChunkWriter::WriteVerticesNum()']]]
];
diff --git a/docs/cpp/search/functions_15.js b/docs/cpp/search/functions_15.js
index 19e5455..3fc5697 100644
--- a/docs/cpp/search/functions_15.js
+++ b/docs/cpp/search/functions_15.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['yamlerror_482',['YamlError',['../classgraphar_1_1_status.html#a358b23c7f34efbf14c84cbc2ddbdd6a4',1,'graphar::Status']]]
+ ['yamlerror_490',['YamlError',['../classgraphar_1_1_status.html#a358b23c7f34efbf14c84cbc2ddbdd6a4',1,'graphar::Status']]]
];
diff --git a/docs/cpp/search/functions_16.js b/docs/cpp/search/functions_16.js
index 85cea3e..5200bd6 100644
--- a/docs/cpp/search/functions_16.js
+++ b/docs/cpp/search/functions_16.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['_7estatus_483',['~Status',['../classgraphar_1_1_status.html#a1a1973d36a87952ccbbb2c09426d3076',1,'graphar::Status']]]
+ ['_7estatus_491',['~Status',['../classgraphar_1_1_status.html#a1a1973d36a87952ccbbb2c09426d3076',1,'graphar::Status']]]
];
diff --git a/docs/cpp/search/functions_2.js b/docs/cpp/search/functions_2.js
index 4d292a5..61fdfc8 100644
--- a/docs/cpp/search/functions_2.js
+++ b/docs/cpp/search/functions_2.js
@@ -1,9 +1,9 @@
var searchData=
[
- ['checktype_307',['CheckType',['../classgraphar_1_1_info_version.html#add949cb2cad530874643835ee69e9d42',1,'graphar::InfoVersion']]],
- ['clear_308',['Clear',['../classgraphar_1_1builder_1_1_edges_builder.html#a852a2713a810d5cc8e60f761bdeb7ea5',1,'graphar::builder::EdgesBuilder::Clear()'],['../classgraphar_1_1builder_1_1_vertices_builder.html#a2f1f8f6a1a913448f1cfad5c77a752ef',1,'graphar::builder::VerticesBuilder::Clear()']]],
- ['code_309',['code',['../classgraphar_1_1_status.html#ad8afab2740385545877fc6bba2c34636',1,'graphar::Status']]],
- ['containproperty_310',['ContainProperty',['../classgraphar_1_1builder_1_1_edge.html#aba23b764fc6ff8cabbff996e64c8e496',1,'graphar::builder::Edge::ContainProperty()'],['../classgraphar_1_1builder_1_1_vertex.html#aa5a0b6642af081eea1faebe3f87d4170',1,'graphar::builder::Vertex::ContainProperty()']]],
- ['copyfile_311',['CopyFile',['../classgraphar_1_1_file_system.html#aab2ff41d0c13cf27b24ec1612817b110',1,'graphar::FileSystem']]],
- ['cur_5foffset_312',['cur_offset',['../classgraphar_1_1_edge_iter.html#a1900a7c61e46ac7e40e72978db7952c7',1,'graphar::EdgeIter']]]
+ ['checktype_311',['CheckType',['../classgraphar_1_1_info_version.html#add949cb2cad530874643835ee69e9d42',1,'graphar::InfoVersion']]],
+ ['clear_312',['Clear',['../classgraphar_1_1builder_1_1_edges_builder.html#a852a2713a810d5cc8e60f761bdeb7ea5',1,'graphar::builder::EdgesBuilder::Clear()'],['../classgraphar_1_1builder_1_1_vertices_builder.html#a2f1f8f6a1a913448f1cfad5c77a752ef',1,'graphar::builder::VerticesBuilder::Clear()']]],
+ ['code_313',['code',['../classgraphar_1_1_status.html#ad8afab2740385545877fc6bba2c34636',1,'graphar::Status']]],
+ ['containproperty_314',['ContainProperty',['../classgraphar_1_1builder_1_1_edge.html#aba23b764fc6ff8cabbff996e64c8e496',1,'graphar::builder::Edge::ContainProperty()'],['../classgraphar_1_1builder_1_1_vertex.html#aa5a0b6642af081eea1faebe3f87d4170',1,'graphar::builder::Vertex::ContainProperty()']]],
+ ['copyfile_315',['CopyFile',['../classgraphar_1_1_file_system.html#aab2ff41d0c13cf27b24ec1612817b110',1,'graphar::FileSystem']]],
+ ['cur_5foffset_316',['cur_offset',['../classgraphar_1_1_edge_iter.html#a1900a7c61e46ac7e40e72978db7952c7',1,'graphar::EdgeIter']]]
];
diff --git a/docs/cpp/search/functions_3.js b/docs/cpp/search/functions_3.js
index 9c9d2c5..1c7978e 100644
--- a/docs/cpp/search/functions_3.js
+++ b/docs/cpp/search/functions_3.js
@@ -1,5 +1,5 @@
var searchData=
[
- ['destination_313',['destination',['../classgraphar_1_1_edge.html#a5350088ffa4fab0a11fbece2a6d5c413',1,'graphar::Edge::destination()'],['../classgraphar_1_1_edge_iter.html#a339ea07e57587ad25dfb3e25b39d6126',1,'graphar::EdgeIter::destination()']]],
- ['dump_314',['Dump',['../classgraphar_1_1_vertex_info.html#adc0a253c371a004324ffae6e8abbdbc7',1,'graphar::VertexInfo::Dump()'],['../classgraphar_1_1_edge_info.html#a80004230ddfbc892995732ea59993a27',1,'graphar::EdgeInfo::Dump()'],['../classgraphar_1_1_graph_info.html#a71646413e64620af1ca83f404e7150ea',1,'graphar::GraphInfo::Dump()'],['../classgraphar_1_1builder_1_1_edges_builder.html#aa318de80b2b259e9fa4aef65f2ce5593',1,'graphar::builder::EdgesBuilder::Dump()'],['../classgraphar_1_1bui [...]
+ ['destination_317',['destination',['../classgraphar_1_1_edge.html#a5350088ffa4fab0a11fbece2a6d5c413',1,'graphar::Edge::destination()'],['../classgraphar_1_1_edge_iter.html#a339ea07e57587ad25dfb3e25b39d6126',1,'graphar::EdgeIter::destination()']]],
+ ['dump_318',['Dump',['../classgraphar_1_1_vertex_info.html#adc0a253c371a004324ffae6e8abbdbc7',1,'graphar::VertexInfo::Dump()'],['../classgraphar_1_1_edge_info.html#a80004230ddfbc892995732ea59993a27',1,'graphar::EdgeInfo::Dump()'],['../classgraphar_1_1_graph_info.html#a71646413e64620af1ca83f404e7150ea',1,'graphar::GraphInfo::Dump()'],['../classgraphar_1_1builder_1_1_edges_builder.html#aa318de80b2b259e9fa4aef65f2ce5593',1,'graphar::builder::EdgesBuilder::Dump()'],['../classgraphar_1_1bui [...]
];
diff --git a/docs/cpp/search/functions_4.js b/docs/cpp/search/functions_4.js
index 3e31c3b..951a9f5 100644
--- a/docs/cpp/search/functions_4.js
+++ b/docs/cpp/search/functions_4.js
@@ -1,13 +1,13 @@
var searchData=
[
- ['edge_315',['Edge',['../classgraphar_1_1_edge.html#a338400a57cda9d0ef9af7ae5e462178d',1,'graphar::Edge::Edge()'],['../classgraphar_1_1builder_1_1_edge.html#aaf96cc9e6a139641ecc40cb0a13194cb',1,'graphar::builder::Edge::Edge()']]],
- ['edgechunkwriter_316',['EdgeChunkWriter',['../classgraphar_1_1_edge_chunk_writer.html#ad0d49b05093477ee5bd4c59a1a181ad4',1,'graphar::EdgeChunkWriter']]],
- ['edgeinfo_317',['EdgeInfo',['../classgraphar_1_1_edge_info.html#ab3c32f3112dcf08304676eeb95545b55',1,'graphar::EdgeInfo']]],
- ['edgeinfonum_318',['EdgeInfoNum',['../classgraphar_1_1_graph_info.html#a814f2cdeecf58a308ab886a085991fc4',1,'graphar::GraphInfo']]],
- ['edgeiter_319',['EdgeIter',['../classgraphar_1_1_edge_iter.html#af4d94894ba5e756d0e851ebfb82965b9',1,'graphar::EdgeIter::EdgeIter(const std::shared_ptr< EdgeInfo > &edge_info, const std::string &prefix, AdjListType adj_list_type, IdType global_chunk_index, IdType offset, IdType chunk_begin, IdType chunk_end, std::shared_ptr< util::IndexConverter > index_converter)'],['../classgraphar_1_1_edge_iter.html#a3d062b462494d4f0e72425c496f40b8d',1,'graphar::EdgeIter::EdgeIt [...]
- ['edgesbuilder_320',['EdgesBuilder',['../classgraphar_1_1builder_1_1_edges_builder.html#a2a482d71cc3fc296b9f4ab611332f95d',1,'graphar::builder::EdgesBuilder']]],
- ['edgescollection_321',['EdgesCollection',['../classgraphar_1_1_edges_collection.html#a9995a991899a99bf2bc5b3219a778794',1,'graphar::EdgesCollection']]],
- ['empty_322',['Empty',['../classgraphar_1_1builder_1_1_edge.html#a72fb5b2f66654a1c3c43f94b56c64564',1,'graphar::builder::Edge::Empty()'],['../classgraphar_1_1builder_1_1_vertex.html#aa548fa2b39a652afd6a85ac6b51b9547',1,'graphar::builder::Vertex::Empty()']]],
- ['end_323',['end',['../classgraphar_1_1_edges_collection.html#afe4ceb0705e8fafdd9345788e31df189',1,'graphar::EdgesCollection::end()'],['../classgraphar_1_1_vertices_collection.html#ac6141a1d376ee5cce969e40cc3a0f7eb',1,'graphar::VerticesCollection::end()']]],
- ['evaluate_324',['Evaluate',['../classgraphar_1_1_expression.html#a75cbb2e1aeb88c26f2667e12dfa51a1e',1,'graphar::Expression::Evaluate()'],['../classgraphar_1_1_expression_property.html#aa8761cac71e3480b059a4d96bf33a1e2',1,'graphar::ExpressionProperty::Evaluate()'],['../classgraphar_1_1_expression_literal.html#a9700bda36668a88c5d8558a9da34527a',1,'graphar::ExpressionLiteral::Evaluate()'],['../classgraphar_1_1_expression_not.html#a4d1a8885f923651132af0fcd7fbae7bb',1,'graphar::ExpressionN [...]
+ ['edge_319',['Edge',['../classgraphar_1_1_edge.html#a338400a57cda9d0ef9af7ae5e462178d',1,'graphar::Edge::Edge()'],['../classgraphar_1_1builder_1_1_edge.html#aaf96cc9e6a139641ecc40cb0a13194cb',1,'graphar::builder::Edge::Edge()']]],
+ ['edgechunkwriter_320',['EdgeChunkWriter',['../classgraphar_1_1_edge_chunk_writer.html#ad0d49b05093477ee5bd4c59a1a181ad4',1,'graphar::EdgeChunkWriter']]],
+ ['edgeinfo_321',['EdgeInfo',['../classgraphar_1_1_edge_info.html#ab3c32f3112dcf08304676eeb95545b55',1,'graphar::EdgeInfo']]],
+ ['edgeinfonum_322',['EdgeInfoNum',['../classgraphar_1_1_graph_info.html#a814f2cdeecf58a308ab886a085991fc4',1,'graphar::GraphInfo']]],
+ ['edgeiter_323',['EdgeIter',['../classgraphar_1_1_edge_iter.html#af4d94894ba5e756d0e851ebfb82965b9',1,'graphar::EdgeIter::EdgeIter(const std::shared_ptr< EdgeInfo > &edge_info, const std::string &prefix, AdjListType adj_list_type, IdType global_chunk_index, IdType offset, IdType chunk_begin, IdType chunk_end, std::shared_ptr< util::IndexConverter > index_converter)'],['../classgraphar_1_1_edge_iter.html#a3d062b462494d4f0e72425c496f40b8d',1,'graphar::EdgeIter::EdgeIt [...]
+ ['edgesbuilder_324',['EdgesBuilder',['../classgraphar_1_1builder_1_1_edges_builder.html#a2a482d71cc3fc296b9f4ab611332f95d',1,'graphar::builder::EdgesBuilder']]],
+ ['edgescollection_325',['EdgesCollection',['../classgraphar_1_1_edges_collection.html#a9995a991899a99bf2bc5b3219a778794',1,'graphar::EdgesCollection']]],
+ ['empty_326',['Empty',['../classgraphar_1_1builder_1_1_edge.html#a72fb5b2f66654a1c3c43f94b56c64564',1,'graphar::builder::Edge::Empty()'],['../classgraphar_1_1builder_1_1_vertex.html#aa548fa2b39a652afd6a85ac6b51b9547',1,'graphar::builder::Vertex::Empty()']]],
+ ['end_327',['end',['../classgraphar_1_1_edges_collection.html#afe4ceb0705e8fafdd9345788e31df189',1,'graphar::EdgesCollection::end()'],['../classgraphar_1_1_vertices_collection.html#ac6141a1d376ee5cce969e40cc3a0f7eb',1,'graphar::VerticesCollection::end()']]],
+ ['evaluate_328',['Evaluate',['../classgraphar_1_1_expression.html#a75cbb2e1aeb88c26f2667e12dfa51a1e',1,'graphar::Expression::Evaluate()'],['../classgraphar_1_1_expression_property.html#aa8761cac71e3480b059a4d96bf33a1e2',1,'graphar::ExpressionProperty::Evaluate()'],['../classgraphar_1_1_expression_literal.html#a9700bda36668a88c5d8558a9da34527a',1,'graphar::ExpressionLiteral::Evaluate()'],['../classgraphar_1_1_expression_not.html#a4d1a8885f923651132af0fcd7fbae7bb',1,'graphar::ExpressionN [...]
];
diff --git a/docs/cpp/search/functions_5.js b/docs/cpp/search/functions_5.js
index 9122f6a..d23e7ee 100644
--- a/docs/cpp/search/functions_5.js
+++ b/docs/cpp/search/functions_5.js
@@ -1,11 +1,11 @@
var searchData=
[
- ['filesystem_325',['FileSystem',['../classgraphar_1_1_file_system.html#a240e8f3d8a4aab98d35a0faf6de54f25',1,'graphar::FileSystem']]],
- ['filter_326',['Filter',['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html#a4674036a7b3f43b71db0bab44c09bfbf',1,'graphar::VertexPropertyArrowChunkReader::Filter()'],['../classgraphar_1_1_adj_list_property_arrow_chunk_reader.html#a4e9c7d1a4f11f0f34ede14685fcc887a',1,'graphar::AdjListPropertyArrowChunkReader::Filter()']]],
- ['filter_327',['filter',['../classgraphar_1_1_vertices_collection.html#ad435d7dd3f45dfffe1b48988633d5092',1,'graphar::VerticesCollection']]],
- ['find_328',['find',['../classgraphar_1_1_vertices_collection.html#a7714ba58402c33d0d90611a633e0d204',1,'graphar::VerticesCollection']]],
- ['find_5fdst_329',['find_dst',['../classgraphar_1_1_u_b_s_edges_collection.html#a2141ccd9ff59172cc63ebfdef338af58',1,'graphar::UBSEdgesCollection::find_dst()'],['../classgraphar_1_1_u_b_d_edges_collection.html#a5558221a922d20ffa8a84dadd18017eb',1,'graphar::UBDEdgesCollection::find_dst()'],['../classgraphar_1_1_o_b_d_edges_collection.html#aa9aad5b7fead6aa38d7caa84fe1fb70d',1,'graphar::OBDEdgesCollection::find_dst()'],['../classgraphar_1_1_o_b_s_edge_collection.html#a6c8a5b39af91318e758e [...]
- ['find_5fsrc_330',['find_src',['../classgraphar_1_1_edges_collection.html#a64ef5fbb7446e30b70cedf91232e7bc6',1,'graphar::EdgesCollection::find_src()'],['../classgraphar_1_1_o_b_s_edge_collection.html#a200d4e4c95a8fc72af65330c279532c4',1,'graphar::OBSEdgeCollection::find_src()'],['../classgraphar_1_1_o_b_d_edges_collection.html#a592407c1dacbdcc55d95123fc1db607c',1,'graphar::OBDEdgesCollection::find_src()'],['../classgraphar_1_1_u_b_s_edges_collection.html#a8dd753314f31341e8ec8b74670745f [...]
- ['first_5fdst_331',['first_dst',['../classgraphar_1_1_edge_iter.html#a53ba1d573c8377db749c06f52d508a37',1,'graphar::EdgeIter']]],
- ['first_5fsrc_332',['first_src',['../classgraphar_1_1_edge_iter.html#a5f811f66be27ef77973919d11b354c1c',1,'graphar::EdgeIter']]]
+ ['filesystem_329',['FileSystem',['../classgraphar_1_1_file_system.html#a240e8f3d8a4aab98d35a0faf6de54f25',1,'graphar::FileSystem']]],
+ ['filter_330',['Filter',['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html#a4674036a7b3f43b71db0bab44c09bfbf',1,'graphar::VertexPropertyArrowChunkReader::Filter()'],['../classgraphar_1_1_adj_list_property_arrow_chunk_reader.html#a4e9c7d1a4f11f0f34ede14685fcc887a',1,'graphar::AdjListPropertyArrowChunkReader::Filter()']]],
+ ['filter_331',['filter',['../classgraphar_1_1_vertices_collection.html#ad435d7dd3f45dfffe1b48988633d5092',1,'graphar::VerticesCollection']]],
+ ['find_332',['find',['../classgraphar_1_1_vertices_collection.html#a7714ba58402c33d0d90611a633e0d204',1,'graphar::VerticesCollection']]],
+ ['find_5fdst_333',['find_dst',['../classgraphar_1_1_u_b_s_edges_collection.html#a2141ccd9ff59172cc63ebfdef338af58',1,'graphar::UBSEdgesCollection::find_dst()'],['../classgraphar_1_1_u_b_d_edges_collection.html#a5558221a922d20ffa8a84dadd18017eb',1,'graphar::UBDEdgesCollection::find_dst()'],['../classgraphar_1_1_o_b_d_edges_collection.html#aa9aad5b7fead6aa38d7caa84fe1fb70d',1,'graphar::OBDEdgesCollection::find_dst()'],['../classgraphar_1_1_o_b_s_edge_collection.html#a6c8a5b39af91318e758e [...]
+ ['find_5fsrc_334',['find_src',['../classgraphar_1_1_edges_collection.html#a64ef5fbb7446e30b70cedf91232e7bc6',1,'graphar::EdgesCollection::find_src()'],['../classgraphar_1_1_o_b_s_edge_collection.html#a200d4e4c95a8fc72af65330c279532c4',1,'graphar::OBSEdgeCollection::find_src()'],['../classgraphar_1_1_o_b_d_edges_collection.html#a592407c1dacbdcc55d95123fc1db607c',1,'graphar::OBDEdgesCollection::find_src()'],['../classgraphar_1_1_u_b_s_edges_collection.html#a8dd753314f31341e8ec8b74670745f [...]
+ ['first_5fdst_335',['first_dst',['../classgraphar_1_1_edge_iter.html#a53ba1d573c8377db749c06f52d508a37',1,'graphar::EdgeIter']]],
+ ['first_5fsrc_336',['first_src',['../classgraphar_1_1_edge_iter.html#a5f811f66be27ef77973919d11b354c1c',1,'graphar::EdgeIter']]]
];
diff --git a/docs/cpp/search/functions_6.js b/docs/cpp/search/functions_6.js
index 9495a94..c783f58 100644
--- a/docs/cpp/search/functions_6.js
+++ b/docs/cpp/search/functions_6.js
@@ -1,54 +1,54 @@
var searchData=
[
- ['getadjlistfilepath_333',['GetAdjListFilePath',['../classgraphar_1_1_edge_info.html#a0eb9f0ff282c73f5c90a8c3940f1929e',1,'graphar::EdgeInfo']]],
- ['getadjlistoffsetfilepath_334',['GetAdjListOffsetFilePath',['../classgraphar_1_1_edge_info.html#a615fe3ed78f35af9aef598287cb89a27',1,'graphar::EdgeInfo']]],
- ['getadjlistpathprefix_335',['GetAdjListPathPrefix',['../classgraphar_1_1_edge_info.html#ab39f63f0aa7284c510a7e0d61b0942d3',1,'graphar::EdgeInfo']]],
- ['getchunk_336',['GetChunk',['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html#a94cb9291c735ccf95ae110fe88b35f85',1,'graphar::VertexPropertyArrowChunkReader::GetChunk()'],['../classgraphar_1_1_adj_list_arrow_chunk_reader.html#ab318bfb7bd7ea5b7f44d82e4d3a7137a',1,'graphar::AdjListArrowChunkReader::GetChunk()'],['../classgraphar_1_1_adj_list_offset_arrow_chunk_reader.html#a21545e364f0e768e3f69289c69e1456b',1,'graphar::AdjListOffsetArrowChunkReader::GetChunk()'],['../classgraph [...]
- ['getchunkindex_337',['GetChunkIndex',['../classgraphar_1_1_adj_list_offset_arrow_chunk_reader.html#aeb49faaf704a2c6bbbdeb249cfa1c281',1,'graphar::AdjListOffsetArrowChunkReader']]],
- ['getchunknum_338',['GetChunkNum',['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html#a0c5216e43657187c39821b1bc8c692a0',1,'graphar::VertexPropertyArrowChunkReader::GetChunkNum()'],['../classgraphar_1_1_vertex_property_chunk_info_reader.html#a87c3a8eeda36c56027cf6bba4eb89990',1,'graphar::VertexPropertyChunkInfoReader::GetChunkNum()']]],
- ['getchunksize_339',['GetChunkSize',['../classgraphar_1_1_vertex_info.html#a39a607d51da7e73a0fae473e90a61825',1,'graphar::VertexInfo::GetChunkSize()'],['../classgraphar_1_1_edge_info.html#a62c2300185c0655df9b44db39b0a399b',1,'graphar::EdgeInfo::GetChunkSize()']]],
- ['getdestination_340',['GetDestination',['../classgraphar_1_1builder_1_1_edge.html#a9c54afa261c314e170ecc3cf097843e5',1,'graphar::builder::Edge']]],
- ['getdstchunksize_341',['GetDstChunkSize',['../classgraphar_1_1_edge_info.html#abe0fc6672a3fbb5fbd0b5e8775cb8dac',1,'graphar::EdgeInfo']]],
- ['getdsttype_342',['GetDstType',['../classgraphar_1_1_edge_info.html#ac03180737adf29c79196bbe729b3c929',1,'graphar::EdgeInfo']]],
- ['getedgeinfo_343',['GetEdgeInfo',['../classgraphar_1_1_graph_info.html#a7e660710d2e1bd244b5d28bdc68aeab2',1,'graphar::GraphInfo']]],
- ['getedgeinfobyindex_344',['GetEdgeInfoByIndex',['../classgraphar_1_1_graph_info.html#afd61923bd9ff1f5329b1c93ebbcd0278',1,'graphar::GraphInfo']]],
- ['getedgeinfoindex_345',['GetEdgeInfoIndex',['../classgraphar_1_1_graph_info.html#aa2ca1614d499facc76927b5de733b503',1,'graphar::GraphInfo']]],
- ['getedgeinfos_346',['GetEdgeInfos',['../classgraphar_1_1_graph_info.html#a14dbabaec827198ee822070c1077a570',1,'graphar::GraphInfo']]],
- ['getedgesnumfilepath_347',['GetEdgesNumFilePath',['../classgraphar_1_1_edge_info.html#a4f2c7fedc68dce8f1c7fb90eede9906f',1,'graphar::EdgeInfo']]],
- ['getedgetype_348',['GetEdgeType',['../classgraphar_1_1_edge_info.html#a03c9b4f4b0edcf47f2e5746e8f9f6db0',1,'graphar::EdgeInfo']]],
- ['getextrainfo_349',['GetExtraInfo',['../classgraphar_1_1_graph_info.html#aa0856ec7ecc8d8d1aac2f7cd51cfe136',1,'graphar::GraphInfo']]],
- ['getfilenumofdir_350',['GetFileNumOfDir',['../classgraphar_1_1_file_system.html#a293c0415cb3b72795e034f2a08510524',1,'graphar::FileSystem']]],
- ['getfilepath_351',['GetFilePath',['../classgraphar_1_1_vertex_info.html#a65faa894acf765eae9c7d4e34dff6306',1,'graphar::VertexInfo']]],
- ['getfiletype_352',['GetFileType',['../classgraphar_1_1_property_group.html#aa4fb424c0c1ef0051ff1029600221c22',1,'graphar::PropertyGroup::GetFileType()'],['../classgraphar_1_1_adjacent_list.html#a2b9f1829c1a5a7cfff7ee96ec7ac4bed',1,'graphar::AdjacentList::GetFileType()']]],
- ['getid_353',['GetId',['../classgraphar_1_1builder_1_1_vertex.html#a2779cc7a62e888d2d768edcfd04e75bb',1,'graphar::builder::Vertex']]],
- ['getlabelchunk_354',['GetLabelChunk',['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html#a382bd12cf864d14d053d6159a54d5b11',1,'graphar::VertexPropertyArrowChunkReader']]],
- ['getlabels_355',['GetLabels',['../classgraphar_1_1_vertex_info.html#a34a49ce4905632889db3f969986cbe75',1,'graphar::VertexInfo::GetLabels()'],['../classgraphar_1_1_graph_info.html#a8b057bb6c3cfd897b0fb31ecceea40c9',1,'graphar::GraphInfo::GetLabels()']]],
- ['getlabeltable_356',['GetLabelTable',['../classgraphar_1_1_vertex_property_writer.html#a66aaa3cb378175cd0addee461191c180',1,'graphar::VertexPropertyWriter']]],
- ['getname_357',['GetName',['../classgraphar_1_1_graph_info.html#ab10cb1ceaa01a74d44c1076c43c2fcce',1,'graphar::GraphInfo']]],
- ['getnum_358',['GetNum',['../classgraphar_1_1builder_1_1_edges_builder.html#a1f68cc300c0cf9d8971c82f274932916',1,'graphar::builder::EdgesBuilder::GetNum()'],['../classgraphar_1_1builder_1_1_vertices_builder.html#abbfa8e3626d4ba178eb242e31567b1f7',1,'graphar::builder::VerticesBuilder::GetNum()']]],
- ['getoffsetpathprefix_359',['GetOffsetPathPrefix',['../classgraphar_1_1_edge_info.html#aab2032669c9e9dcf11275fdd4cb2c1fa',1,'graphar::EdgeInfo']]],
- ['getpathprefix_360',['GetPathPrefix',['../classgraphar_1_1_vertex_info.html#a3214a62ac41be6cb53c22894d2926710',1,'graphar::VertexInfo']]],
- ['getprefix_361',['GetPrefix',['../classgraphar_1_1_property_group.html#a5ec3788a53adc6827d4fbf02fdfab530',1,'graphar::PropertyGroup::GetPrefix()'],['../classgraphar_1_1_graph_info.html#a53eef3d15830bea15de0bbbe7e11e208',1,'graphar::GraphInfo::GetPrefix()'],['../classgraphar_1_1_edge_info.html#a4ec8810a54411f9a8aba35b2faf29acb',1,'graphar::EdgeInfo::GetPrefix()'],['../classgraphar_1_1_adjacent_list.html#a277e5b1c9356f7bdcfe891e043459a3a',1,'graphar::AdjacentList::GetPrefix()'],['../cla [...]
- ['getproperties_362',['GetProperties',['../classgraphar_1_1builder_1_1_edge.html#a3bfa90859f5326fdb5c32890045fe30f',1,'graphar::builder::Edge::GetProperties()'],['../classgraphar_1_1builder_1_1_vertex.html#acf252d94df3623e8fde2c86d446ebb88',1,'graphar::builder::Vertex::GetProperties()'],['../classgraphar_1_1_property_group.html#af090f1d74049ce0222148ad02b26f81a',1,'graphar::PropertyGroup::GetProperties()']]],
- ['getproperty_363',['GetProperty',['../classgraphar_1_1builder_1_1_edge.html#a3074b581309a533760c99b66eedaffbd',1,'graphar::builder::Edge::GetProperty()'],['../classgraphar_1_1builder_1_1_vertex.html#a25721d8da028bae7459aef802f0964ed',1,'graphar::builder::Vertex::GetProperty()']]],
- ['getpropertyfilepath_364',['GetPropertyFilePath',['../classgraphar_1_1_edge_info.html#abfcba5aed61cdfaf91f98e649b370722',1,'graphar::EdgeInfo']]],
- ['getpropertygroup_365',['GetPropertyGroup',['../classgraphar_1_1_vertex_info.html#a2a4cc44b7db8784bdb0e9691c7ad0fba',1,'graphar::VertexInfo::GetPropertyGroup()'],['../classgraphar_1_1_edge_info.html#aec1bdf018d5b209f722dbf293ef14dd6',1,'graphar::EdgeInfo::GetPropertyGroup()']]],
- ['getpropertygroupbyindex_366',['GetPropertyGroupByIndex',['../classgraphar_1_1_vertex_info.html#af6106f8fa90d876a0e97f58c7c39db33',1,'graphar::VertexInfo::GetPropertyGroupByIndex()'],['../classgraphar_1_1_edge_info.html#a8551959066b19885b9ce15262b5cb3db',1,'graphar::EdgeInfo::GetPropertyGroupByIndex(int index) const']]],
- ['getpropertygrouppathprefix_367',['GetPropertyGroupPathPrefix',['../classgraphar_1_1_edge_info.html#a55004cedc30fcb0fa94adf246dcc2702',1,'graphar::EdgeInfo']]],
- ['getpropertygroups_368',['GetPropertyGroups',['../classgraphar_1_1_vertex_info.html#aff9aadd406180802facb14d6a4b5e72e',1,'graphar::VertexInfo::GetPropertyGroups()'],['../classgraphar_1_1_edge_info.html#ad56107001dcbadac71ae8063cd25b58f',1,'graphar::EdgeInfo::GetPropertyGroups()']]],
- ['getpropertytype_369',['GetPropertyType',['../classgraphar_1_1_vertex_info.html#acbeedc2afc98e53155bb1f75c9cb465c',1,'graphar::VertexInfo::GetPropertyType()'],['../classgraphar_1_1_edge_info.html#a37fa8536c627a5e5f529e8ee6d3d7506',1,'graphar::EdgeInfo::GetPropertyType()']]],
- ['getrownumofchunk_370',['GetRowNumOfChunk',['../classgraphar_1_1_adj_list_arrow_chunk_reader.html#a9e9d910308128f62918fef54fe1c95f4',1,'graphar::AdjListArrowChunkReader']]],
- ['getsource_371',['GetSource',['../classgraphar_1_1builder_1_1_edge.html#a4c804187c83dbb379dfbf628e6cf03e5',1,'graphar::builder::Edge']]],
- ['getsrcchunksize_372',['GetSrcChunkSize',['../classgraphar_1_1_edge_info.html#ac07ad975e8ecbdb779038388e3def59e',1,'graphar::EdgeInfo']]],
- ['getsrctype_373',['GetSrcType',['../classgraphar_1_1_edge_info.html#a994023f50f2f952cc1361b0f9928dec4',1,'graphar::EdgeInfo']]],
- ['gettype_374',['GetType',['../classgraphar_1_1_adjacent_list.html#a3d4b038f759cceb75cd38c30414c444b',1,'graphar::AdjacentList::GetType()'],['../classgraphar_1_1_vertex_info.html#a2364ef208346bbd4d468ee78cfc6a1a3',1,'graphar::VertexInfo::GetType()']]],
- ['getvalidatelevel_375',['GetValidateLevel',['../classgraphar_1_1_vertex_property_writer.html#a1f4a62c950ac2d71204a1e0ecf4b4787',1,'graphar::VertexPropertyWriter::GetValidateLevel()'],['../classgraphar_1_1_edge_chunk_writer.html#aebe01465e7e905506bc3b7c49f735fc9',1,'graphar::EdgeChunkWriter::GetValidateLevel()'],['../classgraphar_1_1builder_1_1_edges_builder.html#a865a2585b6bbf41f1f3ebf7f64932db9',1,'graphar::builder::EdgesBuilder::GetValidateLevel()'],['../classgraphar_1_1builder_1_1_ [...]
- ['getvertexinfo_376',['GetVertexInfo',['../classgraphar_1_1_graph_info.html#a8799b4b1a2163507a9ddd8f910d4a9d3',1,'graphar::GraphInfo']]],
- ['getvertexinfobyindex_377',['GetVertexInfoByIndex',['../classgraphar_1_1_graph_info.html#a3a94e3d0f64a1b4d1b672676940c389f',1,'graphar::GraphInfo']]],
- ['getvertexinfoindex_378',['GetVertexInfoIndex',['../classgraphar_1_1_graph_info.html#a0f03270a6ee9c084dab10421cdf69cd5',1,'graphar::GraphInfo']]],
- ['getvertexinfos_379',['GetVertexInfos',['../classgraphar_1_1_graph_info.html#a9393d2797ff5d77f66691f84f15007c4',1,'graphar::GraphInfo']]],
- ['getverticesnumfilepath_380',['GetVerticesNumFilePath',['../classgraphar_1_1_vertex_info.html#aad61b0a40a4bef344fad93cb1332d97d',1,'graphar::VertexInfo::GetVerticesNumFilePath()'],['../classgraphar_1_1_edge_info.html#aec1a622c83b14d62b26e7143850a3cf1',1,'graphar::EdgeInfo::GetVerticesNumFilePath()']]],
- ['getwriteroptions_381',['GetWriterOptions',['../classgraphar_1_1builder_1_1_edges_builder.html#a4b167ea0366c84cc6057ad0ae7f53cde',1,'graphar::builder::EdgesBuilder::GetWriterOptions()'],['../classgraphar_1_1builder_1_1_vertices_builder.html#ac53141acf10d53d62cb29ddde271c37a',1,'graphar::builder::VerticesBuilder::GetWriterOptions()']]],
- ['global_5fchunk_5findex_382',['global_chunk_index',['../classgraphar_1_1_edge_iter.html#a8c49318f5a8d5484463cb3a2a58d861a',1,'graphar::EdgeIter']]],
- ['graphinfo_383',['GraphInfo',['../classgraphar_1_1_graph_info.html#a1b473deea923f7b2a57c339dc7e51192',1,'graphar::GraphInfo']]]
+ ['getadjlistfilepath_337',['GetAdjListFilePath',['../classgraphar_1_1_edge_info.html#a0eb9f0ff282c73f5c90a8c3940f1929e',1,'graphar::EdgeInfo']]],
+ ['getadjlistoffsetfilepath_338',['GetAdjListOffsetFilePath',['../classgraphar_1_1_edge_info.html#a615fe3ed78f35af9aef598287cb89a27',1,'graphar::EdgeInfo']]],
+ ['getadjlistpathprefix_339',['GetAdjListPathPrefix',['../classgraphar_1_1_edge_info.html#ab39f63f0aa7284c510a7e0d61b0942d3',1,'graphar::EdgeInfo']]],
+ ['getchunk_340',['GetChunk',['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html#a94cb9291c735ccf95ae110fe88b35f85',1,'graphar::VertexPropertyArrowChunkReader::GetChunk()'],['../classgraphar_1_1_adj_list_arrow_chunk_reader.html#ab318bfb7bd7ea5b7f44d82e4d3a7137a',1,'graphar::AdjListArrowChunkReader::GetChunk()'],['../classgraphar_1_1_adj_list_offset_arrow_chunk_reader.html#a21545e364f0e768e3f69289c69e1456b',1,'graphar::AdjListOffsetArrowChunkReader::GetChunk()'],['../classgraph [...]
+ ['getchunkindex_341',['GetChunkIndex',['../classgraphar_1_1_adj_list_offset_arrow_chunk_reader.html#aeb49faaf704a2c6bbbdeb249cfa1c281',1,'graphar::AdjListOffsetArrowChunkReader']]],
+ ['getchunknum_342',['GetChunkNum',['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html#a0c5216e43657187c39821b1bc8c692a0',1,'graphar::VertexPropertyArrowChunkReader::GetChunkNum()'],['../classgraphar_1_1_vertex_property_chunk_info_reader.html#a87c3a8eeda36c56027cf6bba4eb89990',1,'graphar::VertexPropertyChunkInfoReader::GetChunkNum()']]],
+ ['getchunksize_343',['GetChunkSize',['../classgraphar_1_1_vertex_info.html#a39a607d51da7e73a0fae473e90a61825',1,'graphar::VertexInfo::GetChunkSize()'],['../classgraphar_1_1_edge_info.html#a62c2300185c0655df9b44db39b0a399b',1,'graphar::EdgeInfo::GetChunkSize()']]],
+ ['getdestination_344',['GetDestination',['../classgraphar_1_1builder_1_1_edge.html#a9c54afa261c314e170ecc3cf097843e5',1,'graphar::builder::Edge']]],
+ ['getdstchunksize_345',['GetDstChunkSize',['../classgraphar_1_1_edge_info.html#abe0fc6672a3fbb5fbd0b5e8775cb8dac',1,'graphar::EdgeInfo']]],
+ ['getdsttype_346',['GetDstType',['../classgraphar_1_1_edge_info.html#ac03180737adf29c79196bbe729b3c929',1,'graphar::EdgeInfo']]],
+ ['getedgeinfo_347',['GetEdgeInfo',['../classgraphar_1_1_graph_info.html#a7e660710d2e1bd244b5d28bdc68aeab2',1,'graphar::GraphInfo']]],
+ ['getedgeinfobyindex_348',['GetEdgeInfoByIndex',['../classgraphar_1_1_graph_info.html#afd61923bd9ff1f5329b1c93ebbcd0278',1,'graphar::GraphInfo']]],
+ ['getedgeinfoindex_349',['GetEdgeInfoIndex',['../classgraphar_1_1_graph_info.html#aa2ca1614d499facc76927b5de733b503',1,'graphar::GraphInfo']]],
+ ['getedgeinfos_350',['GetEdgeInfos',['../classgraphar_1_1_graph_info.html#a14dbabaec827198ee822070c1077a570',1,'graphar::GraphInfo']]],
+ ['getedgesnumfilepath_351',['GetEdgesNumFilePath',['../classgraphar_1_1_edge_info.html#a4f2c7fedc68dce8f1c7fb90eede9906f',1,'graphar::EdgeInfo']]],
+ ['getedgetype_352',['GetEdgeType',['../classgraphar_1_1_edge_info.html#a03c9b4f4b0edcf47f2e5746e8f9f6db0',1,'graphar::EdgeInfo']]],
+ ['getextrainfo_353',['GetExtraInfo',['../classgraphar_1_1_graph_info.html#aa0856ec7ecc8d8d1aac2f7cd51cfe136',1,'graphar::GraphInfo']]],
+ ['getfilenumofdir_354',['GetFileNumOfDir',['../classgraphar_1_1_file_system.html#a293c0415cb3b72795e034f2a08510524',1,'graphar::FileSystem']]],
+ ['getfilepath_355',['GetFilePath',['../classgraphar_1_1_vertex_info.html#a65faa894acf765eae9c7d4e34dff6306',1,'graphar::VertexInfo']]],
+ ['getfiletype_356',['GetFileType',['../classgraphar_1_1_property_group.html#aa4fb424c0c1ef0051ff1029600221c22',1,'graphar::PropertyGroup::GetFileType()'],['../classgraphar_1_1_adjacent_list.html#a2b9f1829c1a5a7cfff7ee96ec7ac4bed',1,'graphar::AdjacentList::GetFileType()']]],
+ ['getid_357',['GetId',['../classgraphar_1_1builder_1_1_vertex.html#a2779cc7a62e888d2d768edcfd04e75bb',1,'graphar::builder::Vertex']]],
+ ['getlabelchunk_358',['GetLabelChunk',['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html#a382bd12cf864d14d053d6159a54d5b11',1,'graphar::VertexPropertyArrowChunkReader']]],
+ ['getlabels_359',['GetLabels',['../classgraphar_1_1_vertex_info.html#a34a49ce4905632889db3f969986cbe75',1,'graphar::VertexInfo::GetLabels()'],['../classgraphar_1_1_graph_info.html#a8b057bb6c3cfd897b0fb31ecceea40c9',1,'graphar::GraphInfo::GetLabels()']]],
+ ['getlabeltable_360',['GetLabelTable',['../classgraphar_1_1_vertex_property_writer.html#a66aaa3cb378175cd0addee461191c180',1,'graphar::VertexPropertyWriter']]],
+ ['getname_361',['GetName',['../classgraphar_1_1_graph_info.html#ab10cb1ceaa01a74d44c1076c43c2fcce',1,'graphar::GraphInfo']]],
+ ['getnum_362',['GetNum',['../classgraphar_1_1builder_1_1_edges_builder.html#a1f68cc300c0cf9d8971c82f274932916',1,'graphar::builder::EdgesBuilder::GetNum()'],['../classgraphar_1_1builder_1_1_vertices_builder.html#abbfa8e3626d4ba178eb242e31567b1f7',1,'graphar::builder::VerticesBuilder::GetNum()']]],
+ ['getoffsetpathprefix_363',['GetOffsetPathPrefix',['../classgraphar_1_1_edge_info.html#aab2032669c9e9dcf11275fdd4cb2c1fa',1,'graphar::EdgeInfo']]],
+ ['getpathprefix_364',['GetPathPrefix',['../classgraphar_1_1_vertex_info.html#a3214a62ac41be6cb53c22894d2926710',1,'graphar::VertexInfo']]],
+ ['getprefix_365',['GetPrefix',['../classgraphar_1_1_property_group.html#a5ec3788a53adc6827d4fbf02fdfab530',1,'graphar::PropertyGroup::GetPrefix()'],['../classgraphar_1_1_graph_info.html#a53eef3d15830bea15de0bbbe7e11e208',1,'graphar::GraphInfo::GetPrefix()'],['../classgraphar_1_1_edge_info.html#a4ec8810a54411f9a8aba35b2faf29acb',1,'graphar::EdgeInfo::GetPrefix()'],['../classgraphar_1_1_adjacent_list.html#a277e5b1c9356f7bdcfe891e043459a3a',1,'graphar::AdjacentList::GetPrefix()'],['../cla [...]
+ ['getproperties_366',['GetProperties',['../classgraphar_1_1builder_1_1_edge.html#a3bfa90859f5326fdb5c32890045fe30f',1,'graphar::builder::Edge::GetProperties()'],['../classgraphar_1_1builder_1_1_vertex.html#acf252d94df3623e8fde2c86d446ebb88',1,'graphar::builder::Vertex::GetProperties()'],['../classgraphar_1_1_property_group.html#af090f1d74049ce0222148ad02b26f81a',1,'graphar::PropertyGroup::GetProperties()']]],
+ ['getproperty_367',['GetProperty',['../classgraphar_1_1builder_1_1_edge.html#a3074b581309a533760c99b66eedaffbd',1,'graphar::builder::Edge::GetProperty()'],['../classgraphar_1_1builder_1_1_vertex.html#a25721d8da028bae7459aef802f0964ed',1,'graphar::builder::Vertex::GetProperty()']]],
+ ['getpropertyfilepath_368',['GetPropertyFilePath',['../classgraphar_1_1_edge_info.html#abfcba5aed61cdfaf91f98e649b370722',1,'graphar::EdgeInfo']]],
+ ['getpropertygroup_369',['GetPropertyGroup',['../classgraphar_1_1_vertex_info.html#a2a4cc44b7db8784bdb0e9691c7ad0fba',1,'graphar::VertexInfo::GetPropertyGroup()'],['../classgraphar_1_1_edge_info.html#aec1bdf018d5b209f722dbf293ef14dd6',1,'graphar::EdgeInfo::GetPropertyGroup()']]],
+ ['getpropertygroupbyindex_370',['GetPropertyGroupByIndex',['../classgraphar_1_1_vertex_info.html#af6106f8fa90d876a0e97f58c7c39db33',1,'graphar::VertexInfo::GetPropertyGroupByIndex()'],['../classgraphar_1_1_edge_info.html#a8551959066b19885b9ce15262b5cb3db',1,'graphar::EdgeInfo::GetPropertyGroupByIndex(int index) const']]],
+ ['getpropertygrouppathprefix_371',['GetPropertyGroupPathPrefix',['../classgraphar_1_1_edge_info.html#a55004cedc30fcb0fa94adf246dcc2702',1,'graphar::EdgeInfo']]],
+ ['getpropertygroups_372',['GetPropertyGroups',['../classgraphar_1_1_vertex_info.html#aff9aadd406180802facb14d6a4b5e72e',1,'graphar::VertexInfo::GetPropertyGroups()'],['../classgraphar_1_1_edge_info.html#ad56107001dcbadac71ae8063cd25b58f',1,'graphar::EdgeInfo::GetPropertyGroups()']]],
+ ['getpropertytype_373',['GetPropertyType',['../classgraphar_1_1_vertex_info.html#acbeedc2afc98e53155bb1f75c9cb465c',1,'graphar::VertexInfo::GetPropertyType()'],['../classgraphar_1_1_edge_info.html#a37fa8536c627a5e5f529e8ee6d3d7506',1,'graphar::EdgeInfo::GetPropertyType()']]],
+ ['getrownumofchunk_374',['GetRowNumOfChunk',['../classgraphar_1_1_adj_list_arrow_chunk_reader.html#a9e9d910308128f62918fef54fe1c95f4',1,'graphar::AdjListArrowChunkReader']]],
+ ['getsource_375',['GetSource',['../classgraphar_1_1builder_1_1_edge.html#a4c804187c83dbb379dfbf628e6cf03e5',1,'graphar::builder::Edge']]],
+ ['getsrcchunksize_376',['GetSrcChunkSize',['../classgraphar_1_1_edge_info.html#ac07ad975e8ecbdb779038388e3def59e',1,'graphar::EdgeInfo']]],
+ ['getsrctype_377',['GetSrcType',['../classgraphar_1_1_edge_info.html#a994023f50f2f952cc1361b0f9928dec4',1,'graphar::EdgeInfo']]],
+ ['gettype_378',['GetType',['../classgraphar_1_1_adjacent_list.html#a3d4b038f759cceb75cd38c30414c444b',1,'graphar::AdjacentList::GetType()'],['../classgraphar_1_1_vertex_info.html#a2364ef208346bbd4d468ee78cfc6a1a3',1,'graphar::VertexInfo::GetType()']]],
+ ['getvalidatelevel_379',['GetValidateLevel',['../classgraphar_1_1_vertex_property_writer.html#a1f4a62c950ac2d71204a1e0ecf4b4787',1,'graphar::VertexPropertyWriter::GetValidateLevel()'],['../classgraphar_1_1_edge_chunk_writer.html#aebe01465e7e905506bc3b7c49f735fc9',1,'graphar::EdgeChunkWriter::GetValidateLevel()'],['../classgraphar_1_1builder_1_1_edges_builder.html#a865a2585b6bbf41f1f3ebf7f64932db9',1,'graphar::builder::EdgesBuilder::GetValidateLevel()'],['../classgraphar_1_1builder_1_1_ [...]
+ ['getvertexinfo_380',['GetVertexInfo',['../classgraphar_1_1_graph_info.html#a8799b4b1a2163507a9ddd8f910d4a9d3',1,'graphar::GraphInfo']]],
+ ['getvertexinfobyindex_381',['GetVertexInfoByIndex',['../classgraphar_1_1_graph_info.html#a3a94e3d0f64a1b4d1b672676940c389f',1,'graphar::GraphInfo']]],
+ ['getvertexinfoindex_382',['GetVertexInfoIndex',['../classgraphar_1_1_graph_info.html#a0f03270a6ee9c084dab10421cdf69cd5',1,'graphar::GraphInfo']]],
+ ['getvertexinfos_383',['GetVertexInfos',['../classgraphar_1_1_graph_info.html#a9393d2797ff5d77f66691f84f15007c4',1,'graphar::GraphInfo']]],
+ ['getverticesnumfilepath_384',['GetVerticesNumFilePath',['../classgraphar_1_1_vertex_info.html#aad61b0a40a4bef344fad93cb1332d97d',1,'graphar::VertexInfo::GetVerticesNumFilePath()'],['../classgraphar_1_1_edge_info.html#aec1a622c83b14d62b26e7143850a3cf1',1,'graphar::EdgeInfo::GetVerticesNumFilePath()']]],
+ ['getwriteroptions_385',['GetWriterOptions',['../classgraphar_1_1builder_1_1_edges_builder.html#a4b167ea0366c84cc6057ad0ae7f53cde',1,'graphar::builder::EdgesBuilder::GetWriterOptions()'],['../classgraphar_1_1builder_1_1_vertices_builder.html#ac53141acf10d53d62cb29ddde271c37a',1,'graphar::builder::VerticesBuilder::GetWriterOptions()']]],
+ ['global_5fchunk_5findex_386',['global_chunk_index',['../classgraphar_1_1_edge_iter.html#a8c49318f5a8d5484463cb3a2a58d861a',1,'graphar::EdgeIter']]],
+ ['graphinfo_387',['GraphInfo',['../classgraphar_1_1_graph_info.html#a1b473deea923f7b2a57c339dc7e51192',1,'graphar::GraphInfo']]]
];
diff --git a/docs/cpp/search/functions_7.js b/docs/cpp/search/functions_7.js
index f60599a..6ff3617 100644
--- a/docs/cpp/search/functions_7.js
+++ b/docs/cpp/search/functions_7.js
@@ -1,7 +1,7 @@
var searchData=
[
- ['hasadjacentlisttype_384',['HasAdjacentListType',['../classgraphar_1_1_edge_info.html#aaa6633dc8136cec806cbcf42c2cf136d',1,'graphar::EdgeInfo']]],
- ['haslabel_385',['hasLabel',['../classgraphar_1_1_vertex_iter.html#a0768988fe4c967719bc100098c5f4eb8',1,'graphar::VertexIter']]],
- ['hasproperty_386',['HasProperty',['../classgraphar_1_1_vertex_info.html#a5d42bec7d8cdb67f1e04b921f484e328',1,'graphar::VertexInfo::HasProperty()'],['../classgraphar_1_1_edge_info.html#a69182fa8d45bb0e7d4ac230adb1239b2',1,'graphar::EdgeInfo::HasProperty()']]],
- ['haspropertygroup_387',['HasPropertyGroup',['../classgraphar_1_1_vertex_info.html#a64aca915578185662b4429e5ed265322',1,'graphar::VertexInfo::HasPropertyGroup()'],['../classgraphar_1_1_edge_info.html#a857bb686e5d7f579ac0e2a889a53f829',1,'graphar::EdgeInfo::HasPropertyGroup()']]]
+ ['hasadjacentlisttype_388',['HasAdjacentListType',['../classgraphar_1_1_edge_info.html#aaa6633dc8136cec806cbcf42c2cf136d',1,'graphar::EdgeInfo']]],
+ ['haslabel_389',['hasLabel',['../classgraphar_1_1_vertex_iter.html#a0768988fe4c967719bc100098c5f4eb8',1,'graphar::VertexIter']]],
+ ['hasproperty_390',['HasProperty',['../classgraphar_1_1_vertex_info.html#a5d42bec7d8cdb67f1e04b921f484e328',1,'graphar::VertexInfo::HasProperty()'],['../classgraphar_1_1_edge_info.html#a69182fa8d45bb0e7d4ac230adb1239b2',1,'graphar::EdgeInfo::HasProperty()']]],
+ ['haspropertygroup_391',['HasPropertyGroup',['../classgraphar_1_1_vertex_info.html#a64aca915578185662b4429e5ed265322',1,'graphar::VertexInfo::HasPropertyGroup()'],['../classgraphar_1_1_edge_info.html#a857bb686e5d7f579ac0e2a889a53f829',1,'graphar::EdgeInfo::HasPropertyGroup()']]]
];
diff --git a/docs/cpp/search/functions_8.js b/docs/cpp/search/functions_8.js
index 7a2a327..308fd13 100644
--- a/docs/cpp/search/functions_8.js
+++ b/docs/cpp/search/functions_8.js
@@ -1,20 +1,20 @@
var searchData=
[
- ['id_388',['id',['../classgraphar_1_1_vertex_iter.html#ab32102732fb8944ec72c4572e1131e42',1,'graphar::VertexIter::id()'],['../classgraphar_1_1_data_type.html#a97eefbeeff497ed919fc6fb3d9b01842',1,'graphar::DataType::id()'],['../classgraphar_1_1_vertex.html#a97815c62a85c6c065b35b9c8b23b1139',1,'graphar::Vertex::id()']]],
- ['indexerror_389',['IndexError',['../classgraphar_1_1_status.html#a1f9b2120c7a6b3e66f9f2e31021df67f',1,'graphar::Status']]],
- ['infoversion_390',['InfoVersion',['../classgraphar_1_1_info_version.html#a30ec617e44be782350daa2e95dcdeb78',1,'graphar::InfoVersion::InfoVersion()'],['../classgraphar_1_1_info_version.html#af0893ab0b6df45496c036ba241732169',1,'graphar::InfoVersion::InfoVersion(int version)'],['../classgraphar_1_1_info_version.html#a361b7a8a17e469f9228e748a57578ce4',1,'graphar::InfoVersion::InfoVersion(int version, const std::vector< std::string > &user_define_types)'],['../classgraphar_1_1_i [...]
- ['invalid_391',['Invalid',['../classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f',1,'graphar::Status']]],
- ['ioerror_392',['IOError',['../classgraphar_1_1_status.html#af74806ef2e707acc99abc8997361f1e5',1,'graphar::Status']]],
- ['is_5fend_393',['is_end',['../classgraphar_1_1_edge_iter.html#a998897b46847ef0c4959074d9eb7b49c',1,'graphar::EdgeIter']]],
- ['isarrowerror_394',['IsArrowError',['../classgraphar_1_1_status.html#a7faef0c9213acb06dd3e249a8d75f43d',1,'graphar::Status']]],
- ['isdirected_395',['IsDirected',['../classgraphar_1_1_edge_info.html#aad31af465d41c026a35c20828915922e',1,'graphar::EdgeInfo']]],
- ['isindexerror_396',['IsIndexError',['../classgraphar_1_1_status.html#ad0d090660a9e71c3e19b3c1739b98f68',1,'graphar::Status']]],
- ['isinvalid_397',['IsInvalid',['../classgraphar_1_1_status.html#a91714dda07e087535605998d815d9240',1,'graphar::Status']]],
- ['iskeyerror_398',['IsKeyError',['../classgraphar_1_1_status.html#a5722c85539ba45817a7f7d57d511bb7c',1,'graphar::Status']]],
- ['isnullablekey_399',['IsNullableKey',['../classgraphar_1_1_vertex_info.html#ad6bc3cbb3ed0c5eaa7fd50298e106a78',1,'graphar::VertexInfo::IsNullableKey()'],['../classgraphar_1_1_edge_info.html#a80b00d930f22870d00331a639c9cc26e',1,'graphar::EdgeInfo::IsNullableKey()']]],
- ['isprimarykey_400',['IsPrimaryKey',['../classgraphar_1_1_vertex_info.html#a68f7407348b39115e0fa4d44750e9d37',1,'graphar::VertexInfo::IsPrimaryKey()'],['../classgraphar_1_1_edge_info.html#a5bd430ba21f5dfb230b978e03c4020ef',1,'graphar::EdgeInfo::IsPrimaryKey()']]],
- ['istypeerror_401',['IsTypeError',['../classgraphar_1_1_status.html#a5655e90a1f657d7e5a12b5217a7eee25',1,'graphar::Status']]],
- ['isvalid_402',['IsValid',['../classgraphar_1_1_vertex.html#a4f078e2bb033c32f1f3ecb6a3d376c98',1,'graphar::Vertex::IsValid()'],['../classgraphar_1_1_edge.html#aa717cc7bec930a6aa97ee860825648b5',1,'graphar::Edge::IsValid()']]],
- ['isvalidated_403',['IsValidated',['../classgraphar_1_1_property_group.html#a9a1d4401d81fb2576ae3f3de21eb9e25',1,'graphar::PropertyGroup::IsValidated()'],['../classgraphar_1_1_adjacent_list.html#a592ba95843997b321f5545e950f03a57',1,'graphar::AdjacentList::IsValidated()'],['../classgraphar_1_1_vertex_info.html#a70d2cb4637d4b2909bd34045a39568af',1,'graphar::VertexInfo::IsValidated()'],['../classgraphar_1_1_edge_info.html#a3dca57726506375cab4fc43fdef2914f',1,'graphar::EdgeInfo::IsValidate [...]
- ['isyamlerror_404',['IsYamlError',['../classgraphar_1_1_status.html#aa42e3449fecbebb29bff9e59bb83fcce',1,'graphar::Status']]]
+ ['id_392',['id',['../classgraphar_1_1_vertex_iter.html#ab32102732fb8944ec72c4572e1131e42',1,'graphar::VertexIter::id()'],['../classgraphar_1_1_data_type.html#a97eefbeeff497ed919fc6fb3d9b01842',1,'graphar::DataType::id()'],['../classgraphar_1_1_vertex.html#a97815c62a85c6c065b35b9c8b23b1139',1,'graphar::Vertex::id()']]],
+ ['indexerror_393',['IndexError',['../classgraphar_1_1_status.html#a1f9b2120c7a6b3e66f9f2e31021df67f',1,'graphar::Status']]],
+ ['infoversion_394',['InfoVersion',['../classgraphar_1_1_info_version.html#a30ec617e44be782350daa2e95dcdeb78',1,'graphar::InfoVersion::InfoVersion()'],['../classgraphar_1_1_info_version.html#af0893ab0b6df45496c036ba241732169',1,'graphar::InfoVersion::InfoVersion(int version)'],['../classgraphar_1_1_info_version.html#a361b7a8a17e469f9228e748a57578ce4',1,'graphar::InfoVersion::InfoVersion(int version, const std::vector< std::string > &user_define_types)'],['../classgraphar_1_1_i [...]
+ ['invalid_395',['Invalid',['../classgraphar_1_1_status.html#a9ca4be37aae8dfea7e6ef54920e0073f',1,'graphar::Status']]],
+ ['ioerror_396',['IOError',['../classgraphar_1_1_status.html#af74806ef2e707acc99abc8997361f1e5',1,'graphar::Status']]],
+ ['is_5fend_397',['is_end',['../classgraphar_1_1_edge_iter.html#a998897b46847ef0c4959074d9eb7b49c',1,'graphar::EdgeIter']]],
+ ['isarrowerror_398',['IsArrowError',['../classgraphar_1_1_status.html#a7faef0c9213acb06dd3e249a8d75f43d',1,'graphar::Status']]],
+ ['isdirected_399',['IsDirected',['../classgraphar_1_1_edge_info.html#aad31af465d41c026a35c20828915922e',1,'graphar::EdgeInfo']]],
+ ['isindexerror_400',['IsIndexError',['../classgraphar_1_1_status.html#ad0d090660a9e71c3e19b3c1739b98f68',1,'graphar::Status']]],
+ ['isinvalid_401',['IsInvalid',['../classgraphar_1_1_status.html#a91714dda07e087535605998d815d9240',1,'graphar::Status']]],
+ ['iskeyerror_402',['IsKeyError',['../classgraphar_1_1_status.html#a5722c85539ba45817a7f7d57d511bb7c',1,'graphar::Status']]],
+ ['isnullablekey_403',['IsNullableKey',['../classgraphar_1_1_vertex_info.html#ad6bc3cbb3ed0c5eaa7fd50298e106a78',1,'graphar::VertexInfo::IsNullableKey()'],['../classgraphar_1_1_edge_info.html#a80b00d930f22870d00331a639c9cc26e',1,'graphar::EdgeInfo::IsNullableKey()']]],
+ ['isprimarykey_404',['IsPrimaryKey',['../classgraphar_1_1_vertex_info.html#a68f7407348b39115e0fa4d44750e9d37',1,'graphar::VertexInfo::IsPrimaryKey()'],['../classgraphar_1_1_edge_info.html#a5bd430ba21f5dfb230b978e03c4020ef',1,'graphar::EdgeInfo::IsPrimaryKey()']]],
+ ['istypeerror_405',['IsTypeError',['../classgraphar_1_1_status.html#a5655e90a1f657d7e5a12b5217a7eee25',1,'graphar::Status']]],
+ ['isvalid_406',['IsValid',['../classgraphar_1_1_vertex.html#a4f078e2bb033c32f1f3ecb6a3d376c98',1,'graphar::Vertex::IsValid()'],['../classgraphar_1_1_edge.html#aa717cc7bec930a6aa97ee860825648b5',1,'graphar::Edge::IsValid()']]],
+ ['isvalidated_407',['IsValidated',['../classgraphar_1_1_property_group.html#a9a1d4401d81fb2576ae3f3de21eb9e25',1,'graphar::PropertyGroup::IsValidated()'],['../classgraphar_1_1_adjacent_list.html#a592ba95843997b321f5545e950f03a57',1,'graphar::AdjacentList::IsValidated()'],['../classgraphar_1_1_vertex_info.html#a70d2cb4637d4b2909bd34045a39568af',1,'graphar::VertexInfo::IsValidated()'],['../classgraphar_1_1_edge_info.html#a3dca57726506375cab4fc43fdef2914f',1,'graphar::EdgeInfo::IsValidate [...]
+ ['isyamlerror_408',['IsYamlError',['../classgraphar_1_1_status.html#aa42e3449fecbebb29bff9e59bb83fcce',1,'graphar::Status']]]
];
diff --git a/docs/cpp/search/functions_9.js b/docs/cpp/search/functions_9.js
index 07c0807..0a1b469 100644
--- a/docs/cpp/search/functions_9.js
+++ b/docs/cpp/search/functions_9.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['keyerror_405',['KeyError',['../classgraphar_1_1_status.html#a4ee4924ddadfc2c1effc055572084d71',1,'graphar::Status']]]
+ ['keyerror_409',['KeyError',['../classgraphar_1_1_status.html#a4ee4924ddadfc2c1effc055572084d71',1,'graphar::Status']]]
];
diff --git a/docs/cpp/search/functions_a.js b/docs/cpp/search/functions_a.js
index 8a549cb..8ae8a39 100644
--- a/docs/cpp/search/functions_a.js
+++ b/docs/cpp/search/functions_a.js
@@ -1,6 +1,6 @@
var searchData=
[
- ['label_406',['label',['../classgraphar_1_1_vertex.html#af9b0eff493cbbed212920411c985f17c',1,'graphar::Vertex::label()'],['../classgraphar_1_1_vertex_iter.html#a0124203ee18520cb1859760366bc949d',1,'graphar::VertexIter::label()']]],
- ['load_407',['Load',['../classgraphar_1_1_vertex_info.html#af1ade1caa6e70e4b7ce60cf4df7ac50c',1,'graphar::VertexInfo::Load(std::shared_ptr< Yaml > yaml)'],['../classgraphar_1_1_vertex_info.html#afc1a3662d2215f157af8ba115307807b',1,'graphar::VertexInfo::Load(const std::string &input)'],['../classgraphar_1_1_edge_info.html#a0ac67e1cf3b3fa79b6fcbc054869d0e5',1,'graphar::EdgeInfo::Load(std::shared_ptr< Yaml > yaml)'],['../classgraphar_1_1_edge_info.html#a5840f6d36ba8e8dab30 [...]
- ['loadfile_408',['LoadFile',['../classgraphar_1_1_yaml.html#ac1c9d809559b322c6f3de30a695fdd4d',1,'graphar::Yaml']]]
+ ['label_410',['label',['../classgraphar_1_1_vertex.html#af9b0eff493cbbed212920411c985f17c',1,'graphar::Vertex::label()'],['../classgraphar_1_1_vertex_iter.html#a0124203ee18520cb1859760366bc949d',1,'graphar::VertexIter::label()']]],
+ ['load_411',['Load',['../classgraphar_1_1_vertex_info.html#af1ade1caa6e70e4b7ce60cf4df7ac50c',1,'graphar::VertexInfo::Load(std::shared_ptr< Yaml > yaml)'],['../classgraphar_1_1_vertex_info.html#afc1a3662d2215f157af8ba115307807b',1,'graphar::VertexInfo::Load(const std::string &input)'],['../classgraphar_1_1_edge_info.html#a0ac67e1cf3b3fa79b6fcbc054869d0e5',1,'graphar::EdgeInfo::Load(std::shared_ptr< Yaml > yaml)'],['../classgraphar_1_1_edge_info.html#a5840f6d36ba8e8dab30 [...]
+ ['loadfile_412',['LoadFile',['../classgraphar_1_1_yaml.html#ac1c9d809559b322c6f3de30a695fdd4d',1,'graphar::Yaml']]]
];
diff --git a/docs/cpp/search/functions_b.js b/docs/cpp/search/functions_b.js
index afa4b2c..07fb1ab 100644
--- a/docs/cpp/search/functions_b.js
+++ b/docs/cpp/search/functions_b.js
@@ -1,7 +1,7 @@
var searchData=
[
- ['make_409',['Make',['../classgraphar_1_1_adj_list_property_chunk_info_reader.html#a07987b8ada7f5da637dd8d0706c0a24c',1,'graphar::AdjListPropertyChunkInfoReader::Make()'],['../classgraphar_1_1_vertex_property_chunk_info_reader.html#a0d50059eebe22a9a95e4cfe1e09029ac',1,'graphar::VertexPropertyChunkInfoReader::Make(const std::shared_ptr< VertexInfo > &vertex_info, const std::shared_ptr< PropertyGroup > &property_group, const std::string &prefix)'],['../classgrapha [...]
- ['makeforlabels_410',['MakeForLabels',['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html#a47723dd5327d91bcef4daac3d420133c',1,'graphar::VertexPropertyArrowChunkReader']]],
- ['makeforproperties_411',['MakeForProperties',['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html#aa36c5c1513f039b1beef2c624ea20b39',1,'graphar::VertexPropertyArrowChunkReader']]],
- ['message_412',['message',['../classgraphar_1_1_status.html#a11279464d73e7362db85e08935546022',1,'graphar::Status']]]
+ ['make_413',['Make',['../classgraphar_1_1_adj_list_property_chunk_info_reader.html#a07987b8ada7f5da637dd8d0706c0a24c',1,'graphar::AdjListPropertyChunkInfoReader::Make()'],['../classgraphar_1_1_vertex_property_chunk_info_reader.html#a0d50059eebe22a9a95e4cfe1e09029ac',1,'graphar::VertexPropertyChunkInfoReader::Make(const std::shared_ptr< VertexInfo > &vertex_info, const std::shared_ptr< PropertyGroup > &property_group, const std::string &prefix)'],['../classgrapha [...]
+ ['makeforlabels_414',['MakeForLabels',['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html#a47723dd5327d91bcef4daac3d420133c',1,'graphar::VertexPropertyArrowChunkReader']]],
+ ['makeforproperties_415',['MakeForProperties',['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html#aa36c5c1513f039b1beef2c624ea20b39',1,'graphar::VertexPropertyArrowChunkReader']]],
+ ['message_416',['message',['../classgraphar_1_1_status.html#a11279464d73e7362db85e08935546022',1,'graphar::Status']]]
];
diff --git a/docs/cpp/search/functions_c.js b/docs/cpp/search/functions_c.js
index fada89e..d909c0e 100644
--- a/docs/cpp/search/functions_c.js
+++ b/docs/cpp/search/functions_c.js
@@ -1,6 +1,6 @@
var searchData=
[
- ['next_5fchunk_413',['next_chunk',['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html#a59f55d130f24a2b1db95426a35ec36ea',1,'graphar::VertexPropertyArrowChunkReader::next_chunk()'],['../classgraphar_1_1_adj_list_arrow_chunk_reader.html#adb0f718d24f3bb97a50af1a6e0d67e4f',1,'graphar::AdjListArrowChunkReader::next_chunk()'],['../classgraphar_1_1_adj_list_offset_arrow_chunk_reader.html#a9af41ec01bdf0fb689fa486001872cae',1,'graphar::AdjListOffsetArrowChunkReader::next_chunk()'],['. [...]
- ['next_5fdst_414',['next_dst',['../classgraphar_1_1_edge_iter.html#ac44117e60ce9394cde69cfdadb47eaaa',1,'graphar::EdgeIter::next_dst()'],['../classgraphar_1_1_edge_iter.html#ac0dbae4d4b02a44c95fbc04f89ecfff6',1,'graphar::EdgeIter::next_dst(IdType id)']]],
- ['next_5fsrc_415',['next_src',['../classgraphar_1_1_edge_iter.html#a0288483d16ed0b62a7a1d1f79f923a6e',1,'graphar::EdgeIter::next_src()'],['../classgraphar_1_1_edge_iter.html#a8b76363f8d8da3fcd23f22724b688c0b',1,'graphar::EdgeIter::next_src(IdType id)']]]
+ ['next_5fchunk_417',['next_chunk',['../classgraphar_1_1_vertex_property_arrow_chunk_reader.html#a59f55d130f24a2b1db95426a35ec36ea',1,'graphar::VertexPropertyArrowChunkReader::next_chunk()'],['../classgraphar_1_1_adj_list_arrow_chunk_reader.html#adb0f718d24f3bb97a50af1a6e0d67e4f',1,'graphar::AdjListArrowChunkReader::next_chunk()'],['../classgraphar_1_1_adj_list_offset_arrow_chunk_reader.html#a9af41ec01bdf0fb689fa486001872cae',1,'graphar::AdjListOffsetArrowChunkReader::next_chunk()'],['. [...]
+ ['next_5fdst_418',['next_dst',['../classgraphar_1_1_edge_iter.html#ac44117e60ce9394cde69cfdadb47eaaa',1,'graphar::EdgeIter::next_dst()'],['../classgraphar_1_1_edge_iter.html#ac0dbae4d4b02a44c95fbc04f89ecfff6',1,'graphar::EdgeIter::next_dst(IdType id)']]],
+ ['next_5fsrc_419',['next_src',['../classgraphar_1_1_edge_iter.html#a0288483d16ed0b62a7a1d1f79f923a6e',1,'graphar::EdgeIter::next_src()'],['../classgraphar_1_1_edge_iter.html#a8b76363f8d8da3fcd23f22724b688c0b',1,'graphar::EdgeIter::next_src(IdType id)']]]
];
diff --git a/docs/cpp/search/functions_d.js b/docs/cpp/search/functions_d.js
index b91350e..c47a7cd 100644
--- a/docs/cpp/search/functions_d.js
+++ b/docs/cpp/search/functions_d.js
@@ -1,14 +1,14 @@
var searchData=
[
- ['obdedgescollection_416',['OBDEdgesCollection',['../classgraphar_1_1_o_b_d_edges_collection.html#ad2792d9ed115a0201cdb0d42c9644191',1,'graphar::OBDEdgesCollection']]],
- ['obsedgecollection_417',['OBSEdgeCollection',['../classgraphar_1_1_o_b_s_edge_collection.html#a1900914bc9725cc2bdcaaa080df3311b',1,'graphar::OBSEdgeCollection']]],
- ['ok_418',['ok',['../classgraphar_1_1_status.html#a401ecb877b8439e3006552f46869e6f0',1,'graphar::Status']]],
- ['ok_419',['OK',['../classgraphar_1_1_status.html#ad92f5c41a661d4f468390e39da90f881',1,'graphar::Status']]],
- ['operator_21_3d_420',['operator!=',['../classgraphar_1_1_vertex_iter.html#abd27c3767cba502e517ae714d9a7d2f3',1,'graphar::VertexIter::operator!=()'],['../classgraphar_1_1_edge_iter.html#a2303e681b0e2b313f987f9e043a17108',1,'graphar::EdgeIter::operator!=()']]],
- ['operator_2a_421',['operator*',['../classgraphar_1_1_vertex_iter.html#a323f4fb318715bbc2c2b36f1c396942f',1,'graphar::VertexIter::operator*()'],['../classgraphar_1_1_edge_iter.html#a24e9941ae0a452eb999f033646d99bb3',1,'graphar::EdgeIter::operator*()']]],
- ['operator_2b_422',['operator+',['../classgraphar_1_1_vertex_iter.html#a9543939eb727f6f2e338db3c929b1977',1,'graphar::VertexIter']]],
- ['operator_2b_2b_423',['operator++',['../classgraphar_1_1_vertex_iter.html#a72a826f0253efa19488d842ecd8cc3ee',1,'graphar::VertexIter::operator++()'],['../classgraphar_1_1_edge_iter.html#ad8d7a3ae222749044b09c33345f97ca1',1,'graphar::EdgeIter::operator++(int)'],['../classgraphar_1_1_edge_iter.html#a13b6b8976181a14a1530cb3c2dfcafbd',1,'graphar::EdgeIter::operator++()'],['../classgraphar_1_1_vertex_iter.html#a115a8829a2c73ce713795142ea07f56d',1,'graphar::VertexIter::operator++() noexcept']]],
- ['operator_2b_3d_424',['operator+=',['../classgraphar_1_1_vertex_iter.html#ac78a2977e8a95e4cc29b343726661e56',1,'graphar::VertexIter']]],
- ['operator_3d_425',['operator=',['../classgraphar_1_1_edge_iter.html#a7f7ace890614287ce41baa0f38f7941c',1,'graphar::EdgeIter::operator=()'],['../classgraphar_1_1_status.html#a2a5b813b0a187fcf753a9e14836bc966',1,'graphar::Status::operator=()'],['../classgraphar_1_1_info_version.html#a420d50bbca2a4f63fd9c5e9c481572e7',1,'graphar::InfoVersion::operator=()']]],
- ['operator_3d_3d_426',['operator==',['../classgraphar_1_1_vertex_iter.html#a23b515734c79c7efed71c1aebf7ccf98',1,'graphar::VertexIter::operator==()'],['../classgraphar_1_1_edge_iter.html#adc8340322917c2efb14a31c8637a4a09',1,'graphar::EdgeIter::operator==()'],['../classgraphar_1_1_info_version.html#ad42b2b314d7948db0293821a1228a4b7',1,'graphar::InfoVersion::operator==()']]]
+ ['obdedgescollection_420',['OBDEdgesCollection',['../classgraphar_1_1_o_b_d_edges_collection.html#ad2792d9ed115a0201cdb0d42c9644191',1,'graphar::OBDEdgesCollection']]],
+ ['obsedgecollection_421',['OBSEdgeCollection',['../classgraphar_1_1_o_b_s_edge_collection.html#a1900914bc9725cc2bdcaaa080df3311b',1,'graphar::OBSEdgeCollection']]],
+ ['ok_422',['ok',['../classgraphar_1_1_status.html#a401ecb877b8439e3006552f46869e6f0',1,'graphar::Status']]],
+ ['ok_423',['OK',['../classgraphar_1_1_status.html#ad92f5c41a661d4f468390e39da90f881',1,'graphar::Status']]],
+ ['operator_21_3d_424',['operator!=',['../classgraphar_1_1_vertex_iter.html#abd27c3767cba502e517ae714d9a7d2f3',1,'graphar::VertexIter::operator!=()'],['../classgraphar_1_1_edge_iter.html#a2303e681b0e2b313f987f9e043a17108',1,'graphar::EdgeIter::operator!=()']]],
+ ['operator_2a_425',['operator*',['../classgraphar_1_1_vertex_iter.html#a323f4fb318715bbc2c2b36f1c396942f',1,'graphar::VertexIter::operator*()'],['../classgraphar_1_1_edge_iter.html#a24e9941ae0a452eb999f033646d99bb3',1,'graphar::EdgeIter::operator*()']]],
+ ['operator_2b_426',['operator+',['../classgraphar_1_1_vertex_iter.html#a9543939eb727f6f2e338db3c929b1977',1,'graphar::VertexIter']]],
+ ['operator_2b_2b_427',['operator++',['../classgraphar_1_1_vertex_iter.html#a72a826f0253efa19488d842ecd8cc3ee',1,'graphar::VertexIter::operator++()'],['../classgraphar_1_1_edge_iter.html#ad8d7a3ae222749044b09c33345f97ca1',1,'graphar::EdgeIter::operator++(int)'],['../classgraphar_1_1_edge_iter.html#a13b6b8976181a14a1530cb3c2dfcafbd',1,'graphar::EdgeIter::operator++()'],['../classgraphar_1_1_vertex_iter.html#a115a8829a2c73ce713795142ea07f56d',1,'graphar::VertexIter::operator++() noexcept']]],
+ ['operator_2b_3d_428',['operator+=',['../classgraphar_1_1_vertex_iter.html#ac78a2977e8a95e4cc29b343726661e56',1,'graphar::VertexIter']]],
+ ['operator_3d_429',['operator=',['../classgraphar_1_1_edge_iter.html#a7f7ace890614287ce41baa0f38f7941c',1,'graphar::EdgeIter::operator=()'],['../classgraphar_1_1_status.html#a2a5b813b0a187fcf753a9e14836bc966',1,'graphar::Status::operator=()'],['../classgraphar_1_1_info_version.html#a420d50bbca2a4f63fd9c5e9c481572e7',1,'graphar::InfoVersion::operator=()']]],
+ ['operator_3d_3d_430',['operator==',['../classgraphar_1_1_vertex_iter.html#a23b515734c79c7efed71c1aebf7ccf98',1,'graphar::VertexIter::operator==()'],['../classgraphar_1_1_edge_iter.html#adc8340322917c2efb14a31c8637a4a09',1,'graphar::EdgeIter::operator==()'],['../classgraphar_1_1_info_version.html#ad42b2b314d7948db0293821a1228a4b7',1,'graphar::InfoVersion::operator==()']]]
];
diff --git a/docs/cpp/search/functions_e.js b/docs/cpp/search/functions_e.js
index 80d0ec7..39cdef8 100644
--- a/docs/cpp/search/functions_e.js
+++ b/docs/cpp/search/functions_e.js
@@ -1,7 +1,7 @@
var searchData=
[
- ['parse_427',['Parse',['../classgraphar_1_1_info_version.html#a6c149bd120118e7c6803dcac71a7a667',1,'graphar::InfoVersion']]],
- ['property_428',['property',['../classgraphar_1_1_vertex.html#ac9ae3439dac97f46bc057a5908536792',1,'graphar::Vertex::property()'],['../classgraphar_1_1_edge.html#ad746d8f83ef691a52368e4b519d40027',1,'graphar::Edge::property()'],['../classgraphar_1_1_vertex_iter.html#a317f220a54470d5fee7e44d3578023e9',1,'graphar::VertexIter::property()'],['../classgraphar_1_1_edge_iter.html#ae74f5832d6d5ce3bbf5886da2eb2e293',1,'graphar::EdgeIter::property()']]],
- ['propertygroup_429',['PropertyGroup',['../classgraphar_1_1_property_group.html#abb84d3d9d16e5efc52c96089a977c60d',1,'graphar::PropertyGroup']]],
- ['propertygroupnum_430',['PropertyGroupNum',['../classgraphar_1_1_vertex_info.html#a7917824d18f7c84a02859f18b47e77fe',1,'graphar::VertexInfo::PropertyGroupNum()'],['../classgraphar_1_1_edge_info.html#aee914f2c4adf773c048daed0e93dbe32',1,'graphar::EdgeInfo::PropertyGroupNum()']]]
+ ['parse_431',['Parse',['../classgraphar_1_1_info_version.html#a6c149bd120118e7c6803dcac71a7a667',1,'graphar::InfoVersion']]],
+ ['property_432',['property',['../classgraphar_1_1_vertex.html#ac9ae3439dac97f46bc057a5908536792',1,'graphar::Vertex::property()'],['../classgraphar_1_1_edge.html#ad746d8f83ef691a52368e4b519d40027',1,'graphar::Edge::property()'],['../classgraphar_1_1_vertex_iter.html#a317f220a54470d5fee7e44d3578023e9',1,'graphar::VertexIter::property()'],['../classgraphar_1_1_edge_iter.html#ae74f5832d6d5ce3bbf5886da2eb2e293',1,'graphar::EdgeIter::property()']]],
+ ['propertygroup_433',['PropertyGroup',['../classgraphar_1_1_property_group.html#abb84d3d9d16e5efc52c96089a977c60d',1,'graphar::PropertyGroup']]],
+ ['propertygroupnum_434',['PropertyGroupNum',['../classgraphar_1_1_vertex_info.html#a7917824d18f7c84a02859f18b47e77fe',1,'graphar::VertexInfo::PropertyGroupNum()'],['../classgraphar_1_1_edge_info.html#aee914f2c4adf773c048daed0e93dbe32',1,'graphar::EdgeInfo::PropertyGroupNum()']]]
];
diff --git a/docs/cpp/search/functions_f.js b/docs/cpp/search/functions_f.js
index bd0829a..1557d8e 100644
--- a/docs/cpp/search/functions_f.js
+++ b/docs/cpp/search/functions_f.js
@@ -1,5 +1,9 @@
var searchData=
[
- ['readfiletotable_431',['ReadFileToTable',['../classgraphar_1_1_file_system.html#acfd1a7452cf5d89826ac119b90949956',1,'graphar::FileSystem']]],
- ['readfiletovalue_432',['ReadFileToValue',['../classgraphar_1_1_file_system.html#aa014a28119399836283a573c9abd97b7',1,'graphar::FileSystem']]]
+ ['readfiletotable_435',['ReadFileToTable',['../classgraphar_1_1_file_system.html#acfd1a7452cf5d89826ac119b90949956',1,'graphar::FileSystem']]],
+ ['readfiletovalue_436',['ReadFileToValue',['../classgraphar_1_1_file_system.html#aa014a28119399836283a573c9abd97b7',1,'graphar::FileSystem']]],
+ ['removeadjacentlist_437',['RemoveAdjacentList',['../classgraphar_1_1_edge_info.html#a7db36496a4cf0eb517b463de5caa125f',1,'graphar::EdgeInfo']]],
+ ['removeedge_438',['RemoveEdge',['../classgraphar_1_1_graph_info.html#acc0e018222ae59e749a52b3678e6529a',1,'graphar::GraphInfo']]],
+ ['removepropertygroup_439',['RemovePropertyGroup',['../classgraphar_1_1_vertex_info.html#a8432977087cbb207f65b91debc240119',1,'graphar::VertexInfo::RemovePropertyGroup()'],['../classgraphar_1_1_edge_info.html#a264853429b84060bbe36c671d5bc8963',1,'graphar::EdgeInfo::RemovePropertyGroup()']]],
+ ['removevertex_440',['RemoveVertex',['../classgraphar_1_1_graph_info.html#ad64a71966ca197ae14ea21ff8787b769',1,'graphar::GraphInfo']]]
];
diff --git a/docs/cpp/search/pages_0.js b/docs/cpp/search/pages_0.js
index 1090e16..19984ee 100644
--- a/docs/cpp/search/pages_0.js
+++ b/docs/cpp/search/pages_0.js
@@ -1,4 +1,4 @@
var searchData=
[
- ['graphar_20c_2b_2b_484',['GraphAr C++',['../index.html',1,'']]]
+ ['graphar_20c_2b_2b_492',['GraphAr C++',['../index.html',1,'']]]
];
diff --git a/docs/index.html b/docs/index.html
index 4032a97..914c516 100644
--- a/docs/index.html
+++ b/docs/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Documentation | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/"> [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/docs/java-ffi/member-search-index.zip b/docs/java-ffi/member-search-index.zip
index 88a9265..d3e3129 100644
Binary files a/docs/java-ffi/member-search-index.zip and b/docs/java-ffi/member-search-index.zip differ
diff --git a/docs/java-ffi/package-search-index.zip b/docs/java-ffi/package-search-index.zip
index a9dd441..020b66d 100644
Binary files a/docs/java-ffi/package-search-index.zip and b/docs/java-ffi/package-search-index.zip differ
diff --git a/docs/java-ffi/type-search-index.zip b/docs/java-ffi/type-search-index.zip
index e746f6d..37cc9d4 100644
Binary files a/docs/java-ffi/type-search-index.zip and b/docs/java-ffi/type-search-index.zip differ
diff --git a/docs/java-info/member-search-index.zip b/docs/java-info/member-search-index.zip
index 1dc6a32..8f4dfe7 100644
Binary files a/docs/java-info/member-search-index.zip and b/docs/java-info/member-search-index.zip differ
diff --git a/docs/java-info/package-search-index.zip b/docs/java-info/package-search-index.zip
index 13a4856..9ab0325 100644
Binary files a/docs/java-info/package-search-index.zip and b/docs/java-info/package-search-index.zip differ
diff --git a/docs/java-info/type-search-index.zip b/docs/java-info/type-search-index.zip
index 0a694b4..8eebe93 100644
Binary files a/docs/java-info/type-search-index.zip and b/docs/java-info/type-search-index.zip differ
diff --git a/docs/libraries/cpp/examples/bgl/index.html b/docs/libraries/cpp/examples/bgl/index.html
index 2a0153a..df2dbff 100644
--- a/docs/libraries/cpp/examples/bgl/index.html
+++ b/docs/libraries/cpp/examples/bgl/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Co-Work with BGL | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/docs/libraries/cpp/examples/graphscope/index.html b/docs/libraries/cpp/examples/graphscope/index.html
index d7bf89a..066ca95 100644
--- a/docs/libraries/cpp/examples/graphscope/index.html
+++ b/docs/libraries/cpp/examples/graphscope/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Integrate into GraphScope | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/docs/libraries/cpp/examples/out-of-core/index.html b/docs/libraries/cpp/examples/out-of-core/index.html
index 2fc1b06..c6227a0 100644
--- a/docs/libraries/cpp/examples/out-of-core/index.html
+++ b/docs/libraries/cpp/examples/out-of-core/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Out-of-core Graph Algorithms | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apa [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/docs/libraries/cpp/examples/snap-to-graphar/index.html b/docs/libraries/cpp/examples/snap-to-graphar/index.html
index 0076763..6a46504 100644
--- a/docs/libraries/cpp/examples/snap-to-graphar/index.html
+++ b/docs/libraries/cpp/examples/snap-to-graphar/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Convert SNAP Datasets to GraphAr Format | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https:// [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/docs/libraries/cpp/getting-started/index.html b/docs/libraries/cpp/getting-started/index.html
index 08a001d..809ca0d 100644
--- a/docs/libraries/cpp/getting-started/index.html
+++ b/docs/libraries/cpp/getting-started/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Getting Started | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/ [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/docs/libraries/java/index.html b/docs/libraries/java/index.html
index 0269a3b..ab56fde 100644
--- a/docs/libraries/java/index.html
+++ b/docs/libraries/java/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Java Library | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/lib [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/docs/libraries/java/info/getting-started/index.html b/docs/libraries/java/info/getting-started/index.html
index 556398b..e2f9539 100644
--- a/docs/libraries/java/info/getting-started/index.html
+++ b/docs/libraries/java/info/getting-started/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Getting Started with Info Module | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/docs/libraries/java/java-FFI/getting-started/index.html b/docs/libraries/java/java-FFI/getting-started/index.html
index 7510c85..4b9e34a 100644
--- a/docs/libraries/java/java-FFI/getting-started/index.html
+++ b/docs/libraries/java/java-FFI/getting-started/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Getting Started with java FFI Module | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://gra [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/docs/libraries/java/java-FFI/how_to_develop_java_ffi/index.html b/docs/libraries/java/java-FFI/how_to_develop_java_ffi/index.html
index d1ff7b4..eb182b1 100644
--- a/docs/libraries/java/java-FFI/how_to_develop_java_ffi/index.html
+++ b/docs/libraries/java/java-FFI/how_to_develop_java_ffi/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">How to Develop Java FFI Library | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar. [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/docs/libraries/pyspark/how-to/index.html b/docs/libraries/pyspark/how-to/index.html
index 6b5952e..1ef78fa 100644
--- a/docs/libraries/pyspark/how-to/index.html
+++ b/docs/libraries/pyspark/how-to/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">How to use GraphAr PySpark package | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graph [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/docs/libraries/pyspark/index.html b/docs/libraries/pyspark/index.html
index c45a2b4..b699f8d 100644
--- a/docs/libraries/pyspark/index.html
+++ b/docs/libraries/pyspark/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">PySpark Library | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/ [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/docs/libraries/spark/examples/index.html b/docs/libraries/spark/examples/index.html
index 63c1af9..0ca6e46 100644
--- a/docs/libraries/spark/examples/index.html
+++ b/docs/libraries/spark/examples/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Examples | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/librari [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/docs/libraries/spark/index.html b/docs/libraries/spark/index.html
index 14c9c6f..293c7ab 100644
--- a/docs/libraries/spark/index.html
+++ b/docs/libraries/spark/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Spark Library | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/li [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/docs/overview/concepts/index.html b/docs/overview/concepts/index.html
index 24be20d..db5c904 100644
--- a/docs/overview/concepts/index.html
+++ b/docs/overview/concepts/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Concepts | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/overvie [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/docs/overview/index.html b/docs/overview/index.html
index 83666c9..43777f8 100644
--- a/docs/overview/index.html
+++ b/docs/overview/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Overview | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/overvie [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/docs/overview/motivation/index.html b/docs/overview/motivation/index.html
index a5fccbf..b46528c 100644
--- a/docs/overview/motivation/index.html
+++ b/docs/overview/motivation/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Motivation | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/docs/overv [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/docs/specification/format/index.html b/docs/specification/format/index.html
index ea8e504..9f8d2e5 100644
--- a/docs/specification/format/index.html
+++ b/docs/specification/format/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Format Specification | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org/ [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
diff --git a/docs/specification/implementation-status/index.html b/docs/specification/implementation-status/index.html
index 0668a01..cd06c37 100644
--- a/docs/specification/implementation-status/index.html
+++ b/docs/specification/implementation-status/index.html
@@ -5,7 +5,7 @@
<meta name="generator" content="Docusaurus v3.1.1">
<title data-rh="true">Implementation Status | Apache GraphAr</title><meta data-rh="true" name="viewport" content="width=device-width,initial-scale=1"><meta data-rh="true" name="twitter:card" content="summary_large_image"><meta data-rh="true" property="og:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" name="twitter:image" content="https://graphar.apache.org/img/social-card.png"><meta data-rh="true" property="og:url" content="https://graphar.apache.org [...]
<link rel="alternate" type="application/atom+xml" href="/blog/atom.xml" title="Apache GraphAr Atom Feed"><link rel="stylesheet" href="/assets/css/styles.dfe66a1a.css">
-<script src="/assets/js/runtime~main.a1bcbcd5.js" defer="defer"></script>
+<script src="/assets/js/runtime~main.d09f585f.js" defer="defer"></script>
<script src="/assets/js/main.fdbbf013.js" defer="defer"></script>
</head>
<body class="navigation-with-keyboard">
@@ -33,7 +33,7 @@ All libraries currently follow version 1.0.0 of the GraphAr format.</p>
<p>Supported operations in Property:</p>
<table><thead><tr><th>Property operation</th><th>C++</th><th>Java</th><th>Scala</th><th>Python</th></tr></thead><tbody><tr><td>create</td><td>✓</td><td>✓ (1)</td><td>✓</td><td>✓ (2)</td></tr><tr><td>get_name</td><td>✓</td><td>✓ (1)</td><td>✓</td><td>✓ (2)</td></tr><tr><td>is_primary_key</td><td>✓</td><td>✓ (1)</td><td>✓</td><td>✓ (2)</td></tr><tr><td>is_nullable</td><td>✓</td><td></td><td>✓</td><td>✓ (2)</td></tr></tbody></table>
<h2 class="anchor anchorWithStickyNavbar_qibj" id="property-group">Property Group<a href="#property-group" class="hash-link" aria-label="Direct link to Property Group" title="Direct link to Property Group"></a></h2>
-<table><thead><tr><th>Property Group (operation)</th><th>C++</th><th>Java (1)</th><th>Scala</th><th>Python (2)</th></tr></thead><tbody><tr><td>create</td><td>