diff --git a/docs/.gitignore b/docs/.gitignore new file mode 100644 index 0000000..3d0fb70 --- /dev/null +++ b/docs/.gitignore @@ -0,0 +1,2 @@ +modules/api/pages/ +modules/api/nav.adoc \ No newline at end of file diff --git a/docs/antora.yml b/docs/antora.yml new file mode 100644 index 0000000..fb6fbb1 --- /dev/null +++ b/docs/antora.yml @@ -0,0 +1,24 @@ +name: rsl +version: ~ +title: Reflection Support Library + +ext: + collector: + - worktree: + keep: until:exit + run: + - command: claudoc generate ../include modules/api --verbose + dir: . + scan: + dir: . + files: '**/*' + ignore: [] +nav: +- modules/ROOT/nav.adoc +- modules/annotation/nav.adoc +- modules/collections/nav.adoc +- modules/platform/nav.adoc +- modules/serialization/nav.adoc +- modules/utilities/nav.adoc +- modules/api/nav.adoc + diff --git a/docs/modules/ROOT/nav.adoc b/docs/modules/ROOT/nav.adoc new file mode 100644 index 0000000..e69de29 diff --git a/docs/modules/ROOT/pages/brief.adoc b/docs/modules/ROOT/pages/brief.adoc new file mode 100644 index 0000000..8a235be --- /dev/null +++ b/docs/modules/ROOT/pages/brief.adoc @@ -0,0 +1,9 @@ +This project contains reimplementations of various standard library facilities +and other utilities to assist with reflective code. + +This includes reimplementations of various containers as structural types, +several useful reflective queries, reusable annotations, experimental additions +to existing facilities and general infrastructure commonly needed in reflective, +metaprogramming-heavy codebases. + +The rsl project is released under the 0-BSD license. \ No newline at end of file diff --git a/docs/modules/ROOT/pages/index.adoc b/docs/modules/ROOT/pages/index.adoc new file mode 100644 index 0000000..b1ab52a --- /dev/null +++ b/docs/modules/ROOT/pages/index.adoc @@ -0,0 +1,26 @@ += **R**eflection **S**upport **L**ibrary + +include::brief.adoc[] + +[WARNING] +==== +This documentation is very incomplete and might be partially broken. + +Since popular documentation generators for C++ do not yet support reflective +code, the API documentation is currently generated using a +https://github.com/tsche/claudoc[temporary tool]. + +Since this is only a temporary fix, that tool is largely generated by LLMs. +==== + +Here's an overview: + +:leveloffset: +1 + +include::annotation:index.adoc[] +include::collections:index.adoc[] +include::platform:index.adoc[] +include::serialization:index.adoc[] +include::utilities:index.adoc[] + +:leveloffset: -1 diff --git a/docs/modules/annotation/nav.adoc b/docs/modules/annotation/nav.adoc new file mode 100644 index 0000000..f74eadc --- /dev/null +++ b/docs/modules/annotation/nav.adoc @@ -0,0 +1 @@ +* xref:index.adoc[] \ No newline at end of file diff --git a/docs/modules/annotation/pages/index.adoc b/docs/modules/annotation/pages/index.adoc new file mode 100644 index 0000000..6c26bba --- /dev/null +++ b/docs/modules/annotation/pages/index.adoc @@ -0,0 +1 @@ += Annotation Library \ No newline at end of file diff --git a/docs/modules/api/README.md b/docs/modules/api/README.md new file mode 100644 index 0000000..659d8e3 --- /dev/null +++ b/docs/modules/api/README.md @@ -0,0 +1 @@ +This is the target folder for automatically generated API documentation. Do not check in anything from this folder. \ No newline at end of file diff --git a/docs/modules/collections/nav.adoc b/docs/modules/collections/nav.adoc new file mode 100644 index 0000000..a5591cc --- /dev/null +++ b/docs/modules/collections/nav.adoc @@ -0,0 +1,5 @@ +.xref:index.adoc[] +* xref:api:include/rsl/span.adoc[] +* xref:api:include/rsl/string_view.adoc[] +* xref:api:include/rsl/tuple.adoc[] +* xref:api:include/rsl/variant.adoc[] diff --git a/docs/modules/collections/pages/index.adoc b/docs/modules/collections/pages/index.adoc new file mode 100644 index 0000000..8272579 --- /dev/null +++ b/docs/modules/collections/pages/index.adoc @@ -0,0 +1 @@ += Collections library \ No newline at end of file diff --git a/docs/modules/platform/nav.adoc b/docs/modules/platform/nav.adoc new file mode 100644 index 0000000..31f850e --- /dev/null +++ b/docs/modules/platform/nav.adoc @@ -0,0 +1 @@ +* xref:index.adoc[] diff --git a/docs/modules/platform/pages/index.adoc b/docs/modules/platform/pages/index.adoc new file mode 100644 index 0000000..f21ae9d --- /dev/null +++ b/docs/modules/platform/pages/index.adoc @@ -0,0 +1 @@ += Platform support library \ No newline at end of file diff --git a/docs/modules/serialization/nav.adoc b/docs/modules/serialization/nav.adoc new file mode 100644 index 0000000..dfeea2e --- /dev/null +++ b/docs/modules/serialization/nav.adoc @@ -0,0 +1,4 @@ +.xref:index.adoc[] +* xref:design.adoc[] +* xref:customization.adoc[] +* xref:api:include/rsl/repr.adoc[] \ No newline at end of file diff --git a/docs/modules/serialization/pages/customization.adoc b/docs/modules/serialization/pages/customization.adoc new file mode 100644 index 0000000..7a84df4 --- /dev/null +++ b/docs/modules/serialization/pages/customization.adoc @@ -0,0 +1 @@ += Customization \ No newline at end of file diff --git a/docs/modules/serialization/pages/design.adoc b/docs/modules/serialization/pages/design.adoc new file mode 100644 index 0000000..ddc1db7 --- /dev/null +++ b/docs/modules/serialization/pages/design.adoc @@ -0,0 +1 @@ += Design \ No newline at end of file diff --git a/docs/modules/serialization/pages/index.adoc b/docs/modules/serialization/pages/index.adoc new file mode 100644 index 0000000..0f6a469 --- /dev/null +++ b/docs/modules/serialization/pages/index.adoc @@ -0,0 +1 @@ += Serialization library \ No newline at end of file diff --git a/docs/modules/utilities/nav.adoc b/docs/modules/utilities/nav.adoc new file mode 100644 index 0000000..b2b9d95 --- /dev/null +++ b/docs/modules/utilities/nav.adoc @@ -0,0 +1,5 @@ +.xref:index.adoc[] +* xref:api:include/rsl/meta.adoc[] +* xref:api:include/rsl/meta_traits.adoc[] +* xref:api:include/rsl/source_location.adoc[] +* xref:api:include/rsl/trie.adoc[] \ No newline at end of file diff --git a/docs/modules/utilities/pages/index.adoc b/docs/modules/utilities/pages/index.adoc new file mode 100644 index 0000000..92909cc --- /dev/null +++ b/docs/modules/utilities/pages/index.adoc @@ -0,0 +1 @@ += Utilities library \ No newline at end of file diff --git a/include/rsl/format b/include/rsl/format index e9a3081..7be9231 100644 --- a/include/rsl/format +++ b/include/rsl/format @@ -1,4 +1,8 @@ #pragma once +#include +#include +#include + #include "_impl/format/fmt_parser.hpp" #include "_impl/format/style.hpp"