mirror of
https://github.com/NixOS/nix
synced 2025-06-29 10:31:15 +02:00
Add infra for experimental store implemenations
This is analogous to that for experimental settings and flags that we have also added as of late.
This commit is contained in:
parent
3723363697
commit
3b592c880a
4 changed files with 39 additions and 4 deletions
|
@ -1496,6 +1496,7 @@ ref<Store> openStore(const std::string & uri_,
|
|||
if (implem.uriSchemes.count(parsedUri.scheme)) {
|
||||
auto store = implem.create(parsedUri.scheme, baseURI, params);
|
||||
if (store) {
|
||||
experimentalFeatureSettings.require(store->experimentalFeature());
|
||||
store->init();
|
||||
store->warnUnknownSettings();
|
||||
return ref<Store>(store);
|
||||
|
|
|
@ -109,13 +109,28 @@ struct StoreConfig : public Config
|
|||
|
||||
virtual ~StoreConfig() { }
|
||||
|
||||
/**
|
||||
* The name of this type of store.
|
||||
*/
|
||||
virtual const std::string name() = 0;
|
||||
|
||||
/**
|
||||
* Documentation for this type of store.
|
||||
*/
|
||||
virtual std::string doc()
|
||||
{
|
||||
return "";
|
||||
}
|
||||
|
||||
/**
|
||||
* An experimental feature this type store is gated, if it is to be
|
||||
* experimental.
|
||||
*/
|
||||
virtual std::optional<ExperimentalFeature> experimentalFeature() const
|
||||
{
|
||||
return std::nullopt;
|
||||
}
|
||||
|
||||
const PathSetting storeDir_{this, settings.nixStore,
|
||||
"store",
|
||||
R"(
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue