forked from lix-project/lix
469d06f9bc
This is generally a fine practice: Putting implementations in headers makes them harder to read and slows compilation. Unfortunately it is necessary for templates, but we can ameliorate that by putting them in a separate header. Only files which need to instantiate those templates will need to include the header with the implementation; the rest can just include the declaration. This is now documenting in the contributing guide. Also, it just happens that these polymorphic serializers are the protocol agnostic ones. (Worker and serve protocol have the same logic for these container types.) This means by doing this general template cleanup, we are also getting a head start on better indicating which code is protocol-specific and which code is shared between protocols.
160 lines
8.9 KiB
Markdown
160 lines
8.9 KiB
Markdown
# Table of Contents
|
|
|
|
- [Introduction](introduction.md)
|
|
- [Quick Start](quick-start.md)
|
|
- [Installation](installation/installation.md)
|
|
- [Supported Platforms](installation/supported-platforms.md)
|
|
- [Installing a Binary Distribution](installation/installing-binary.md)
|
|
- [Installing Nix from Source](installation/installing-source.md)
|
|
- [Prerequisites](installation/prerequisites-source.md)
|
|
- [Obtaining a Source Distribution](installation/obtaining-source.md)
|
|
- [Building Nix from Source](installation/building-source.md)
|
|
- [Using Nix within Docker](installation/installing-docker.md)
|
|
- [Security](installation/nix-security.md)
|
|
- [Single-User Mode](installation/single-user.md)
|
|
- [Multi-User Mode](installation/multi-user.md)
|
|
- [Environment Variables](installation/env-variables.md)
|
|
- [Upgrading Nix](installation/upgrading.md)
|
|
- [Uninstalling Nix](installation/uninstall.md)
|
|
- [Package Management](package-management/package-management.md)
|
|
- [Basic Package Management](package-management/basic-package-mgmt.md)
|
|
- [Profiles](package-management/profiles.md)
|
|
- [Garbage Collection](package-management/garbage-collection.md)
|
|
- [Garbage Collector Roots](package-management/garbage-collector-roots.md)
|
|
- [Channels](package-management/channels.md)
|
|
- [Sharing Packages Between Machines](package-management/sharing-packages.md)
|
|
- [Serving a Nix store via HTTP](package-management/binary-cache-substituter.md)
|
|
- [Copying Closures via SSH](package-management/copy-closure.md)
|
|
- [Serving a Nix store via SSH](package-management/ssh-substituter.md)
|
|
- [Serving a Nix store via S3](package-management/s3-substituter.md)
|
|
- [Nix Language](language/index.md)
|
|
- [Data Types](language/values.md)
|
|
- [Language Constructs](language/constructs.md)
|
|
- [String interpolation](language/string-interpolation.md)
|
|
- [Operators](language/operators.md)
|
|
- [Derivations](language/derivations.md)
|
|
- [Advanced Attributes](language/advanced-attributes.md)
|
|
- [Built-in Constants](language/builtin-constants.md)
|
|
- [Built-in Functions](language/builtins.md)
|
|
- [Advanced Topics](advanced-topics/advanced-topics.md)
|
|
- [Remote Builds](advanced-topics/distributed-builds.md)
|
|
- [Tuning Cores and Jobs](advanced-topics/cores-vs-jobs.md)
|
|
- [Verifying Build Reproducibility](advanced-topics/diff-hook.md)
|
|
- [Using the `post-build-hook`](advanced-topics/post-build-hook.md)
|
|
- [Command Reference](command-ref/command-ref.md)
|
|
- [Common Options](command-ref/opt-common.md)
|
|
- [Common Environment Variables](command-ref/env-common.md)
|
|
- [Main Commands](command-ref/main-commands.md)
|
|
- [nix-build](command-ref/nix-build.md)
|
|
- [nix-shell](command-ref/nix-shell.md)
|
|
- [nix-store](command-ref/nix-store.md)
|
|
- [nix-store --add-fixed](command-ref/nix-store/add-fixed.md)
|
|
- [nix-store --add](command-ref/nix-store/add.md)
|
|
- [nix-store --delete](command-ref/nix-store/delete.md)
|
|
- [nix-store --dump-db](command-ref/nix-store/dump-db.md)
|
|
- [nix-store --dump](command-ref/nix-store/dump.md)
|
|
- [nix-store --export](command-ref/nix-store/export.md)
|
|
- [nix-store --gc](command-ref/nix-store/gc.md)
|
|
- [nix-store --generate-binary-cache-key](command-ref/nix-store/generate-binary-cache-key.md)
|
|
- [nix-store --import](command-ref/nix-store/import.md)
|
|
- [nix-store --load-db](command-ref/nix-store/load-db.md)
|
|
- [nix-store --optimise](command-ref/nix-store/optimise.md)
|
|
- [nix-store --print-env](command-ref/nix-store/print-env.md)
|
|
- [nix-store --query](command-ref/nix-store/query.md)
|
|
- [nix-store --read-log](command-ref/nix-store/read-log.md)
|
|
- [nix-store --realise](command-ref/nix-store/realise.md)
|
|
- [nix-store --repair-path](command-ref/nix-store/repair-path.md)
|
|
- [nix-store --restore](command-ref/nix-store/restore.md)
|
|
- [nix-store --serve](command-ref/nix-store/serve.md)
|
|
- [nix-store --verify-path](command-ref/nix-store/verify-path.md)
|
|
- [nix-store --verify](command-ref/nix-store/verify.md)
|
|
- [nix-env](command-ref/nix-env.md)
|
|
- [nix-env --delete-generations](command-ref/nix-env/delete-generations.md)
|
|
- [nix-env --install](command-ref/nix-env/install.md)
|
|
- [nix-env --list-generations](command-ref/nix-env/list-generations.md)
|
|
- [nix-env --query](command-ref/nix-env/query.md)
|
|
- [nix-env --rollback](command-ref/nix-env/rollback.md)
|
|
- [nix-env --set-flag](command-ref/nix-env/set-flag.md)
|
|
- [nix-env --set](command-ref/nix-env/set.md)
|
|
- [nix-env --switch-generation](command-ref/nix-env/switch-generation.md)
|
|
- [nix-env --switch-profile](command-ref/nix-env/switch-profile.md)
|
|
- [nix-env --uninstall](command-ref/nix-env/uninstall.md)
|
|
- [nix-env --upgrade](command-ref/nix-env/upgrade.md)
|
|
- [Utilities](command-ref/utilities.md)
|
|
- [nix-channel](command-ref/nix-channel.md)
|
|
- [nix-collect-garbage](command-ref/nix-collect-garbage.md)
|
|
- [nix-copy-closure](command-ref/nix-copy-closure.md)
|
|
- [nix-daemon](command-ref/nix-daemon.md)
|
|
- [nix-hash](command-ref/nix-hash.md)
|
|
- [nix-instantiate](command-ref/nix-instantiate.md)
|
|
- [nix-prefetch-url](command-ref/nix-prefetch-url.md)
|
|
- [Experimental Commands](command-ref/experimental-commands.md)
|
|
{{#include ./command-ref/new-cli/SUMMARY.md}}
|
|
- [Files](command-ref/files.md)
|
|
- [nix.conf](command-ref/conf-file.md)
|
|
- [Profiles](command-ref/files/profiles.md)
|
|
- [manifest.nix](command-ref/files/manifest.nix.md)
|
|
- [manifest.json](command-ref/files/manifest.json.md)
|
|
- [Channels](command-ref/files/channels.md)
|
|
- [Default Nix expression](command-ref/files/default-nix-expression.md)
|
|
- [Architecture and Design](architecture/architecture.md)
|
|
- [File System Object](architecture/file-system-object.md)
|
|
- [Protocols](protocols/protocols.md)
|
|
- [Serving Tarball Flakes](protocols/tarball-fetcher.md)
|
|
- [Glossary](glossary.md)
|
|
- [Contributing](contributing/contributing.md)
|
|
- [Hacking](contributing/hacking.md)
|
|
- [Experimental Features](contributing/experimental-features.md)
|
|
- [CLI guideline](contributing/cli-guideline.md)
|
|
- [C++ style guide](contributing/cxx.md)
|
|
- [Release Notes](release-notes/release-notes.md)
|
|
- [Release X.Y (202?-??-??)](release-notes/rl-next.md)
|
|
- [Release 2.16 (2023-05-31)](release-notes/rl-2.16.md)
|
|
- [Release 2.15 (2023-04-11)](release-notes/rl-2.15.md)
|
|
- [Release 2.14 (2023-02-28)](release-notes/rl-2.14.md)
|
|
- [Release 2.13 (2023-01-17)](release-notes/rl-2.13.md)
|
|
- [Release 2.12 (2022-12-06)](release-notes/rl-2.12.md)
|
|
- [Release 2.11 (2022-08-25)](release-notes/rl-2.11.md)
|
|
- [Release 2.10 (2022-07-11)](release-notes/rl-2.10.md)
|
|
- [Release 2.9 (2022-05-30)](release-notes/rl-2.9.md)
|
|
- [Release 2.8 (2022-04-19)](release-notes/rl-2.8.md)
|
|
- [Release 2.7 (2022-03-07)](release-notes/rl-2.7.md)
|
|
- [Release 2.6 (2022-01-24)](release-notes/rl-2.6.md)
|
|
- [Release 2.5 (2021-12-13)](release-notes/rl-2.5.md)
|
|
- [Release 2.4 (2021-11-01)](release-notes/rl-2.4.md)
|
|
- [Release 2.3 (2019-09-04)](release-notes/rl-2.3.md)
|
|
- [Release 2.2 (2019-01-11)](release-notes/rl-2.2.md)
|
|
- [Release 2.1 (2018-09-02)](release-notes/rl-2.1.md)
|
|
- [Release 2.0 (2018-02-22)](release-notes/rl-2.0.md)
|
|
- [Release 1.11.10 (2017-06-12)](release-notes/rl-1.11.10.md)
|
|
- [Release 1.11 (2016-01-19)](release-notes/rl-1.11.md)
|
|
- [Release 1.10 (2015-09-03)](release-notes/rl-1.10.md)
|
|
- [Release 1.9 (2015-06-12)](release-notes/rl-1.9.md)
|
|
- [Release 1.8 (2014-12-14)](release-notes/rl-1.8.md)
|
|
- [Release 1.7 (2014-04-11)](release-notes/rl-1.7.md)
|
|
- [Release 1.6.1 (2013-10-28)](release-notes/rl-1.6.1.md)
|
|
- [Release 1.6 (2013-09-10)](release-notes/rl-1.6.md)
|
|
- [Release 1.5.2 (2013-05-13)](release-notes/rl-1.5.2.md)
|
|
- [Release 1.5 (2013-02-27)](release-notes/rl-1.5.md)
|
|
- [Release 1.4 (2013-02-26)](release-notes/rl-1.4.md)
|
|
- [Release 1.3 (2013-01-04)](release-notes/rl-1.3.md)
|
|
- [Release 1.2 (2012-12-06)](release-notes/rl-1.2.md)
|
|
- [Release 1.1 (2012-07-18)](release-notes/rl-1.1.md)
|
|
- [Release 1.0 (2012-05-11)](release-notes/rl-1.0.md)
|
|
- [Release 0.16 (2010-08-17)](release-notes/rl-0.16.md)
|
|
- [Release 0.15 (2010-03-17)](release-notes/rl-0.15.md)
|
|
- [Release 0.14 (2010-02-04)](release-notes/rl-0.14.md)
|
|
- [Release 0.13 (2009-11-05)](release-notes/rl-0.13.md)
|
|
- [Release 0.12 (2008-11-20)](release-notes/rl-0.12.md)
|
|
- [Release 0.11 (2007-12-31)](release-notes/rl-0.11.md)
|
|
- [Release 0.10.1 (2006-10-11)](release-notes/rl-0.10.1.md)
|
|
- [Release 0.10 (2006-10-06)](release-notes/rl-0.10.md)
|
|
- [Release 0.9.2 (2005-09-21)](release-notes/rl-0.9.2.md)
|
|
- [Release 0.9.1 (2005-09-20)](release-notes/rl-0.9.1.md)
|
|
- [Release 0.9 (2005-09-16)](release-notes/rl-0.9.md)
|
|
- [Release 0.8.1 (2005-04-13)](release-notes/rl-0.8.1.md)
|
|
- [Release 0.8 (2005-04-11)](release-notes/rl-0.8.md)
|
|
- [Release 0.7 (2005-01-12)](release-notes/rl-0.7.md)
|
|
- [Release 0.6 (2004-11-14)](release-notes/rl-0.6.md)
|
|
- [Release 0.5 and earlier](release-notes/rl-0.5.md)
|