This is an automated email from the ASF dual-hosted git repository.
paleolimbot pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/arrow-nanoarrow.git
The following commit(s) were added to refs/heads/main by this push:
new 9b034ad chore(docs): Add IPC extension to rendered documentation
(#186)
9b034ad is described below
commit 9b034ad916eceec4e9d8300633d0b65687d25511
Author: Dewey Dunnington <[email protected]>
AuthorDate: Fri Apr 21 15:25:39 2023 -0400
chore(docs): Add IPC extension to rendered documentation (#186)
---
.github/workflows/docs.yaml | 14 +-
ci/scripts/build-docs.sh | 65 ++--
docs/README.md | 5 +
docs/source/conf.py | 5 +-
docs/source/index.rst | 1 +
docs/source/{index.rst => ipc.rst} | 14 +-
extensions/nanoarrow_ipc/src/apidoc/.gitignore | 18 +
extensions/nanoarrow_ipc/src/apidoc/Doxyfile | 407 +++++++++++++++++++++
.../nanoarrow_ipc/src/nanoarrow/nanoarrow_ipc.h | 20 +
9 files changed, 510 insertions(+), 39 deletions(-)
diff --git a/.github/workflows/docs.yaml b/.github/workflows/docs.yaml
index 6728f60..14f1d16 100644
--- a/.github/workflows/docs.yaml
+++ b/.github/workflows/docs.yaml
@@ -26,7 +26,11 @@ on:
- main
paths:
- '.github/workflows/docs.yaml'
- - 'src/nanoarrow/**'
+ - 'ci/scripts/coverage.sh'
+ - 'ci/docker/ubuntu.dockerfile'
+ - 'docker-compose.yml'
+ - 'extensions/nanoarrow_ipc/src/**'
+ - 'src/**'
- 'r/**'
jobs:
@@ -39,12 +43,8 @@ jobs:
- name: Build documentation
run: |
- docker compose run --rm docs
-
- - name: Documentation build logs
- if: always()
- run: |
- cat docs/_build/build-docs.log
+ echo "::group::Docker Pull"
+ docker compose run --rm -e GITHUB_ACTIONS docs
- name: Upload built documentation
uses: actions/upload-artifact@main
diff --git a/ci/scripts/build-docs.sh b/ci/scripts/build-docs.sh
index b978adb..427ea16 100755
--- a/ci/scripts/build-docs.sh
+++ b/ci/scripts/build-docs.sh
@@ -27,6 +27,17 @@ fi
SOURCE_DIR="$(cd "$(dirname "${BASH_SOURCE[0]:-$0}")" && pwd)"
NANOARROW_DIR="$(cd "${SOURCE_DIR}/../.." && pwd)"
+show_header() {
+ if [ -z "$GITHUB_ACTIONS" ]; then
+ echo ""
+ printf '=%.0s' $(seq ${#1}); printf '\n'
+ echo "${1}"
+ printf '=%.0s' $(seq ${#1}); printf '\n'
+ else
+ echo "::group::${1}"; printf '\n'
+ fi
+}
+
case $# in
0) TARGET_NANOARROW_DIR="${NANOARROW_DIR}"
;;
@@ -42,35 +53,45 @@ case $# in
esac
main() {
- pushd "${TARGET_NANOARROW_DIR}"
+ pushd "${TARGET_NANOARROW_DIR}"
- # Run doxygen
- pushd src/apidoc
- doxygen
- popd
+ # Clean the previous build
+ rm -rf docs/_build
+ mkdir -p docs/_build
- pushd docs
+ # Run doxygen
+ show_header "Run Doxygen for C library"
+ pushd src/apidoc
+ doxygen
+ popd
- # Use the README as the docs homepage
- pandoc ../README.md --from markdown --to rst -s -o
source/README_generated.rst
+ # Run doxygen
+ show_header "Run Doxygen for IPC extension"
+ pushd extensions/nanoarrow_ipc/src/apidoc
+ doxygen
+ popd
- # Build sphinx project
- sphinx-build source _build/html
+ pushd docs
- # Install the R package from source
- R CMD INSTALL ../r --preclean
+ show_header "Build Sphinx project"
- # Build R documentation
- Rscript -e 'pkgdown::build_site_github_pages("../r", dest_dir =
"../docs/_build/html/r", new_process = FALSE, install = FALSE)'
+ # Use the README as the docs homepage
+ pandoc ../README.md --from markdown --to rst -s -o
source/README_generated.rst
- popd
+ # Build sphinx project
+ sphinx-build source _build/html
- popd
-}
+ show_header "Build R documentation"
+
+ # Install the R package from source
+ R CMD INSTALL ../r --preclean
-# Clean the previous build
-rm -rf "${TARGET_NANOARROW_DIR}/docs/_build"
-mkdir -p "${TARGET_NANOARROW_DIR}/docs/_build"
+ # Build R documentation
+ Rscript -e 'pkgdown::build_site_github_pages("../r", dest_dir =
"../docs/_build/html/r", new_process = FALSE, install = FALSE)'
+
+ popd
+
+ popd
+}
-main >> "${TARGET_NANOARROW_DIR}/docs/_build/build-docs.log" 2>&1
-echo "${TARGET_NANOARROW_DIR}/docs/_build/html"
+main
diff --git a/docs/README.md b/docs/README.md
index 97d7fd0..f85e504 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -30,6 +30,11 @@ pushd ../src/apidoc
doxygen
popd
+# run doxygen for the IPC extension
+pushd ../extensions/nanoarrow_ipc/src/apidoc
+doxygen
+popd
+
# copy the readme into rst so that we can include it from sphinx
pandoc ../README.md --from markdown --to rst -s -o source/README_generated.rst
diff --git a/docs/source/conf.py b/docs/source/conf.py
index 879460c..9ef7e63 100644
--- a/docs/source/conf.py
+++ b/docs/source/conf.py
@@ -50,7 +50,10 @@ extensions = [
]
# Breathe configuration
-breathe_projects = {"nanoarrow_c": "../../src/apidoc/xml"}
+breathe_projects = {
+ "nanoarrow_c": "../../src/apidoc/xml",
+ "nanoarrow_ipc": "../../extensions/nanoarrow_ipc/src/apidoc/xml"
+}
breathe_default_project = "nanoarrow_c"
# Add any paths that contain templates here, relative to this directory.
diff --git a/docs/source/index.rst b/docs/source/index.rst
index 747e97a..8700738 100644
--- a/docs/source/index.rst
+++ b/docs/source/index.rst
@@ -25,3 +25,4 @@ Contents
C API Reference <c>
C++ API Reference <cpp>
+ IPC Extension Reference <ipc>
diff --git a/docs/source/index.rst b/docs/source/ipc.rst
similarity index 85%
copy from docs/source/index.rst
copy to docs/source/ipc.rst
index 747e97a..8bc7214 100644
--- a/docs/source/index.rst
+++ b/docs/source/ipc.rst
@@ -15,13 +15,9 @@
.. specific language governing permissions and limitations
.. under the License.
-.. include:: README_generated.rst
+IPC Extension Reference
+=======================
-Contents
---------
-
-.. toctree::
- :maxdepth: 2
-
- C API Reference <c>
- C++ API Reference <cpp>
+.. doxygengroup:: nanoarrow_ipc
+ :project: nanoarrow_ipc
+ :members:
diff --git a/extensions/nanoarrow_ipc/src/apidoc/.gitignore
b/extensions/nanoarrow_ipc/src/apidoc/.gitignore
new file mode 100644
index 0000000..8e6b490
--- /dev/null
+++ b/extensions/nanoarrow_ipc/src/apidoc/.gitignore
@@ -0,0 +1,18 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+
+xml
diff --git a/extensions/nanoarrow_ipc/src/apidoc/Doxyfile
b/extensions/nanoarrow_ipc/src/apidoc/Doxyfile
new file mode 100644
index 0000000..50e9938
--- /dev/null
+++ b/extensions/nanoarrow_ipc/src/apidoc/Doxyfile
@@ -0,0 +1,407 @@
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you under the Apache License, Version 2.0 (the
+# "License"); you may not use this file except in compliance
+# with the License. You may obtain a copy of the License at
+#
+# http://www.apache.org/licenses/LICENSE-2.0
+#
+# Unless required by applicable law or agreed to in writing,
+# software distributed under the License is distributed on an
+# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+# KIND, either express or implied. See the License for the
+# specific language governing permissions and limitations
+# under the License.
+#
+# Doxyfile 1.9.4
+
+#---------------------------------------------------------------------------
+# Project related configuration options
+#---------------------------------------------------------------------------
+DOXYFILE_ENCODING = UTF-8
+PROJECT_NAME = "nanoarrow_ipc"
+PROJECT_NUMBER =
+PROJECT_BRIEF =
+PROJECT_LOGO =
+OUTPUT_DIRECTORY =
+CREATE_SUBDIRS = NO
+CREATE_SUBDIRS_LEVEL = 8
+ALLOW_UNICODE_NAMES = NO
+OUTPUT_LANGUAGE = English
+BRIEF_MEMBER_DESC = YES
+REPEAT_BRIEF = YES
+ABBREVIATE_BRIEF = "The $name class" \
+ "The $name widget" \
+ "The $name file" \
+ is \
+ provides \
+ specifies \
+ contains \
+ represents \
+ a \
+ an \
+ the
+ALWAYS_DETAILED_SEC = NO
+INLINE_INHERITED_MEMB = NO
+FULL_PATH_NAMES = YES
+STRIP_FROM_PATH =
+STRIP_FROM_INC_PATH =
+SHORT_NAMES = NO
+JAVADOC_AUTOBRIEF = NO
+JAVADOC_BANNER = NO
+QT_AUTOBRIEF = NO
+MULTILINE_CPP_IS_BRIEF = NO
+PYTHON_DOCSTRING = YES
+INHERIT_DOCS = YES
+SEPARATE_MEMBER_PAGES = NO
+TAB_SIZE = 4
+ALIASES =
+OPTIMIZE_OUTPUT_FOR_C = NO
+OPTIMIZE_OUTPUT_JAVA = NO
+OPTIMIZE_FOR_FORTRAN = NO
+OPTIMIZE_OUTPUT_VHDL = NO
+OPTIMIZE_OUTPUT_SLICE = NO
+EXTENSION_MAPPING =
+MARKDOWN_SUPPORT = YES
+TOC_INCLUDE_HEADINGS = 5
+AUTOLINK_SUPPORT = YES
+BUILTIN_STL_SUPPORT = NO
+CPP_CLI_SUPPORT = NO
+SIP_SUPPORT = NO
+IDL_PROPERTY_SUPPORT = YES
+DISTRIBUTE_GROUP_DOC = NO
+GROUP_NESTED_COMPOUNDS = NO
+SUBGROUPING = YES
+INLINE_GROUPED_CLASSES = NO
+INLINE_SIMPLE_STRUCTS = NO
+TYPEDEF_HIDES_STRUCT = NO
+LOOKUP_CACHE_SIZE = 0
+NUM_PROC_THREADS = 1
+#---------------------------------------------------------------------------
+# Build related configuration options
+#---------------------------------------------------------------------------
+EXTRACT_ALL = NO
+EXTRACT_PRIVATE = NO
+EXTRACT_PRIV_VIRTUAL = NO
+EXTRACT_PACKAGE = NO
+EXTRACT_STATIC = NO
+EXTRACT_LOCAL_CLASSES = YES
+EXTRACT_LOCAL_METHODS = NO
+EXTRACT_ANON_NSPACES = NO
+RESOLVE_UNNAMED_PARAMS = YES
+HIDE_UNDOC_MEMBERS = NO
+HIDE_UNDOC_CLASSES = NO
+HIDE_FRIEND_COMPOUNDS = NO
+HIDE_IN_BODY_DOCS = NO
+INTERNAL_DOCS = NO
+CASE_SENSE_NAMES = NO
+HIDE_SCOPE_NAMES = NO
+HIDE_COMPOUND_REFERENCE= NO
+SHOW_HEADERFILE = YES
+SHOW_INCLUDE_FILES = YES
+SHOW_GROUPED_MEMB_INC = NO
+FORCE_LOCAL_INCLUDES = NO
+INLINE_INFO = YES
+SORT_MEMBER_DOCS = YES
+SORT_BRIEF_DOCS = NO
+SORT_MEMBERS_CTORS_1ST = NO
+SORT_GROUP_NAMES = NO
+SORT_BY_SCOPE_NAME = NO
+STRICT_PROTO_MATCHING = NO
+GENERATE_TODOLIST = YES
+GENERATE_TESTLIST = YES
+GENERATE_BUGLIST = YES
+GENERATE_DEPRECATEDLIST= YES
+ENABLED_SECTIONS =
+MAX_INITIALIZER_LINES = 30
+SHOW_USED_FILES = YES
+SHOW_FILES = YES
+SHOW_NAMESPACES = YES
+FILE_VERSION_FILTER =
+LAYOUT_FILE =
+CITE_BIB_FILES =
+#---------------------------------------------------------------------------
+# Configuration options related to warning and progress messages
+#---------------------------------------------------------------------------
+QUIET = NO
+WARNINGS = YES
+WARN_IF_UNDOCUMENTED = YES
+WARN_IF_DOC_ERROR = YES
+WARN_IF_INCOMPLETE_DOC = YES
+WARN_NO_PARAMDOC = NO
+WARN_AS_ERROR = NO
+WARN_FORMAT = "$file:$line: $text"
+WARN_LINE_FORMAT = "at line $line of file $file"
+WARN_LOGFILE =
+#---------------------------------------------------------------------------
+# Configuration options related to the input files
+#---------------------------------------------------------------------------
+INPUT = ../nanoarrow \
+ .
+INPUT_ENCODING = UTF-8
+FILE_PATTERNS = *.c \
+ *.cc \
+ *.cxx \
+ *.cpp \
+ *.c++ \
+ *.java \
+ *.ii \
+ *.ixx \
+ *.ipp \
+ *.i++ \
+ *.inl \
+ *.idl \
+ *.ddl \
+ *.odl \
+ *.h \
+ *.hh \
+ *.hxx \
+ *.hpp \
+ *.h++ \
+ *.l \
+ *.cs \
+ *.d \
+ *.php \
+ *.php4 \
+ *.php5 \
+ *.phtml \
+ *.inc \
+ *.m \
+ *.markdown \
+ *.md \
+ *.mm \
+ *.dox \
+ *.py \
+ *.pyw \
+ *.f90 \
+ *.f95 \
+ *.f03 \
+ *.f08 \
+ *.f18 \
+ *.f \
+ *.for \
+ *.vhd \
+ *.vhdl \
+ *.ucf \
+ *.qsf \
+ *.ice
+RECURSIVE = NO
+EXCLUDE =
+EXCLUDE_SYMLINKS = NO
+EXCLUDE_PATTERNS =
+EXCLUDE_SYMBOLS =
+EXAMPLE_PATH =
+EXAMPLE_PATTERNS = *
+EXAMPLE_RECURSIVE = NO
+IMAGE_PATH =
+INPUT_FILTER =
+FILTER_PATTERNS =
+FILTER_SOURCE_FILES = NO
+FILTER_SOURCE_PATTERNS =
+USE_MDFILE_AS_MAINPAGE =
+#---------------------------------------------------------------------------
+# Configuration options related to source browsing
+#---------------------------------------------------------------------------
+SOURCE_BROWSER = NO
+INLINE_SOURCES = NO
+STRIP_CODE_COMMENTS = YES
+REFERENCED_BY_RELATION = NO
+REFERENCES_RELATION = NO
+REFERENCES_LINK_SOURCE = YES
+SOURCE_TOOLTIPS = YES
+USE_HTAGS = NO
+VERBATIM_HEADERS = YES
+#---------------------------------------------------------------------------
+# Configuration options related to the alphabetical class index
+#---------------------------------------------------------------------------
+ALPHABETICAL_INDEX = YES
+IGNORE_PREFIX =
+#---------------------------------------------------------------------------
+# Configuration options related to the HTML output
+#---------------------------------------------------------------------------
+GENERATE_HTML = NO
+HTML_OUTPUT = html
+HTML_FILE_EXTENSION = .html
+HTML_HEADER =
+HTML_FOOTER =
+HTML_STYLESHEET =
+HTML_EXTRA_STYLESHEET =
+HTML_EXTRA_FILES =
+HTML_COLORSTYLE_HUE = 220
+HTML_COLORSTYLE_SAT = 100
+HTML_COLORSTYLE_GAMMA = 80
+HTML_TIMESTAMP = NO
+HTML_DYNAMIC_MENUS = YES
+HTML_DYNAMIC_SECTIONS = NO
+HTML_INDEX_NUM_ENTRIES = 100
+GENERATE_DOCSET = NO
+DOCSET_FEEDNAME = "Doxygen generated docs"
+DOCSET_FEEDURL =
+DOCSET_BUNDLE_ID = org.doxygen.Project
+DOCSET_PUBLISHER_ID = org.doxygen.Publisher
+DOCSET_PUBLISHER_NAME = Publisher
+GENERATE_HTMLHELP = NO
+CHM_FILE =
+HHC_LOCATION =
+GENERATE_CHI = NO
+CHM_INDEX_ENCODING =
+BINARY_TOC = NO
+TOC_EXPAND = NO
+GENERATE_QHP = NO
+QCH_FILE =
+QHP_NAMESPACE = org.doxygen.Project
+QHP_VIRTUAL_FOLDER = doc
+QHP_CUST_FILTER_NAME =
+QHP_CUST_FILTER_ATTRS =
+QHP_SECT_FILTER_ATTRS =
+QHG_LOCATION =
+GENERATE_ECLIPSEHELP = NO
+ECLIPSE_DOC_ID = org.doxygen.Project
+DISABLE_INDEX = NO
+GENERATE_TREEVIEW = NO
+FULL_SIDEBAR = NO
+ENUM_VALUES_PER_LINE = 4
+TREEVIEW_WIDTH = 250
+EXT_LINKS_IN_WINDOW = NO
+OBFUSCATE_EMAILS = YES
+HTML_FORMULA_FORMAT = png
+FORMULA_FONTSIZE = 10
+FORMULA_TRANSPARENT = YES
+FORMULA_MACROFILE =
+USE_MATHJAX = NO
+MATHJAX_VERSION = MathJax_2
+MATHJAX_FORMAT = HTML-CSS
+MATHJAX_RELPATH =
+MATHJAX_EXTENSIONS =
+MATHJAX_CODEFILE =
+SEARCHENGINE = YES
+SERVER_BASED_SEARCH = NO
+EXTERNAL_SEARCH = NO
+SEARCHENGINE_URL =
+SEARCHDATA_FILE = searchdata.xml
+EXTERNAL_SEARCH_ID =
+EXTRA_SEARCH_MAPPINGS =
+#---------------------------------------------------------------------------
+# Configuration options related to the LaTeX output
+#---------------------------------------------------------------------------
+GENERATE_LATEX = NO
+LATEX_OUTPUT = latex
+LATEX_CMD_NAME =
+MAKEINDEX_CMD_NAME = makeindex
+LATEX_MAKEINDEX_CMD = makeindex
+COMPACT_LATEX = NO
+PAPER_TYPE = a4
+EXTRA_PACKAGES =
+LATEX_HEADER =
+LATEX_FOOTER =
+LATEX_EXTRA_STYLESHEET =
+LATEX_EXTRA_FILES =
+PDF_HYPERLINKS = YES
+USE_PDFLATEX = YES
+LATEX_BATCHMODE = NO
+LATEX_HIDE_INDICES = NO
+LATEX_BIB_STYLE = plain
+LATEX_TIMESTAMP = NO
+LATEX_EMOJI_DIRECTORY =
+#---------------------------------------------------------------------------
+# Configuration options related to the RTF output
+#---------------------------------------------------------------------------
+GENERATE_RTF = NO
+RTF_OUTPUT = rtf
+COMPACT_RTF = NO
+RTF_HYPERLINKS = NO
+RTF_STYLESHEET_FILE =
+RTF_EXTENSIONS_FILE =
+#---------------------------------------------------------------------------
+# Configuration options related to the man page output
+#---------------------------------------------------------------------------
+GENERATE_MAN = NO
+MAN_OUTPUT = man
+MAN_EXTENSION = .3
+MAN_SUBDIR =
+MAN_LINKS = NO
+#---------------------------------------------------------------------------
+# Configuration options related to the XML output
+#---------------------------------------------------------------------------
+GENERATE_XML = YES
+XML_OUTPUT = xml
+XML_PROGRAMLISTING = YES
+XML_NS_MEMB_FILE_SCOPE = NO
+#---------------------------------------------------------------------------
+# Configuration options related to the DOCBOOK output
+#---------------------------------------------------------------------------
+GENERATE_DOCBOOK = NO
+DOCBOOK_OUTPUT = docbook
+#---------------------------------------------------------------------------
+# Configuration options for the AutoGen Definitions output
+#---------------------------------------------------------------------------
+GENERATE_AUTOGEN_DEF = NO
+#---------------------------------------------------------------------------
+# Configuration options related to the Perl module output
+#---------------------------------------------------------------------------
+GENERATE_PERLMOD = NO
+PERLMOD_LATEX = NO
+PERLMOD_PRETTY = YES
+PERLMOD_MAKEVAR_PREFIX =
+#---------------------------------------------------------------------------
+# Configuration options related to the preprocessor
+#---------------------------------------------------------------------------
+ENABLE_PREPROCESSING = YES
+MACRO_EXPANSION = NO
+EXPAND_ONLY_PREDEF = NO
+SEARCH_INCLUDES = YES
+INCLUDE_PATH =
+INCLUDE_FILE_PATTERNS =
+PREDEFINED =
+EXPAND_AS_DEFINED =
+SKIP_FUNCTION_MACROS = YES
+#---------------------------------------------------------------------------
+# Configuration options related to external references
+#---------------------------------------------------------------------------
+TAGFILES =
+GENERATE_TAGFILE =
+ALLEXTERNALS = NO
+EXTERNAL_GROUPS = YES
+EXTERNAL_PAGES = YES
+#---------------------------------------------------------------------------
+# Configuration options related to the dot tool
+#---------------------------------------------------------------------------
+DIA_PATH =
+HIDE_UNDOC_RELATIONS = YES
+HAVE_DOT = NO
+DOT_NUM_THREADS = 0
+DOT_FONTNAME = Helvetica
+DOT_FONTSIZE = 10
+DOT_FONTPATH =
+CLASS_GRAPH = YES
+COLLABORATION_GRAPH = YES
+GROUP_GRAPHS = YES
+UML_LOOK = NO
+UML_LIMIT_NUM_FIELDS = 10
+DOT_UML_DETAILS = NO
+DOT_WRAP_THRESHOLD = 17
+TEMPLATE_RELATIONS = NO
+INCLUDE_GRAPH = YES
+INCLUDED_BY_GRAPH = YES
+CALL_GRAPH = NO
+CALLER_GRAPH = NO
+GRAPHICAL_HIERARCHY = YES
+DIRECTORY_GRAPH = YES
+DIR_GRAPH_MAX_DEPTH = 1
+DOT_IMAGE_FORMAT = png
+INTERACTIVE_SVG = NO
+DOT_PATH =
+DOTFILE_DIRS =
+MSCFILE_DIRS =
+DIAFILE_DIRS =
+PLANTUML_JAR_PATH =
+PLANTUML_CFG_FILE =
+PLANTUML_INCLUDE_PATH =
+DOT_GRAPH_MAX_NODES = 50
+MAX_DOT_GRAPH_DEPTH = 0
+DOT_TRANSPARENT = NO
+DOT_MULTI_TARGETS = NO
+GENERATE_LEGEND = YES
+DOT_CLEANUP = YES
diff --git a/extensions/nanoarrow_ipc/src/nanoarrow/nanoarrow_ipc.h
b/extensions/nanoarrow_ipc/src/nanoarrow/nanoarrow_ipc.h
index 85a765a..5747cec 100644
--- a/extensions/nanoarrow_ipc/src/nanoarrow/nanoarrow_ipc.h
+++ b/extensions/nanoarrow_ipc/src/nanoarrow/nanoarrow_ipc.h
@@ -64,6 +64,18 @@
extern "C" {
#endif
+/// \defgroup nanoarrow_ipc Nanoarrow IPC extension
+///
+/// Except where noted, objects are not thread-safe and clients should
+/// take care to serialize accesses to methods.
+///
+/// Because this library is intended to be vendored, it provides full type
+/// definitions and encourages clients to stack or statically allocate
+/// where convenient.
+///
+/// @{
+
+/// \brief Metadata version enumerator
enum ArrowIpcMetadataVersion {
NANOARROW_IPC_METADATA_VERSION_V1,
NANOARROW_IPC_METADATA_VERSION_V2,
@@ -72,6 +84,7 @@ enum ArrowIpcMetadataVersion {
NANOARROW_IPC_METADATA_VERSION_V5
};
+/// \brief Message type enumerator
enum ArrowIpcMessageType {
NANOARROW_IPC_MESSAGE_TYPE_UNINITIALIZED,
NANOARROW_IPC_MESSAGE_TYPE_SCHEMA,
@@ -81,19 +94,24 @@ enum ArrowIpcMessageType {
NANOARROW_IPC_MESSAGE_TYPE_SPARSE_TENSOR
};
+/// \brief Endianness enumerator
enum ArrowIpcEndianness {
NANOARROW_IPC_ENDIANNESS_UNINITIALIZED,
NANOARROW_IPC_ENDIANNESS_LITTLE,
NANOARROW_IPC_ENDIANNESS_BIG
};
+/// \brief Compression type enumerator
enum ArrowIpcCompressionType {
NANOARROW_IPC_COMPRESSION_TYPE_NONE,
NANOARROW_IPC_COMPRESSION_TYPE_LZ4_FRAME,
NANOARROW_IPC_COMPRESSION_TYPE_ZSTD
};
+/// \brief Feature flag for a stream that uses dictionary replacement
#define NANOARROW_IPC_FEATURE_DICTIONARY_REPLACEMENT 1
+
+/// \brief Feature flag for a stream that uses compression
#define NANOARROW_IPC_FEATURE_COMPRESSED_BODY 2
/// \brief Checks the nanoarrow runtime to make sure the run/build versions
match
@@ -352,6 +370,8 @@ ArrowErrorCode ArrowIpcArrayStreamReaderInit(
struct ArrowArrayStream* out, struct ArrowIpcInputStream* input_stream,
struct ArrowIpcArrayStreamReaderOptions* options);
+/// @}
+
#ifdef __cplusplus
}
#endif