Skip to main content

Module link_storage_doublets

Module link_storage_doublets 

Source
Expand description

Bridge between the CLI’s LinkStorage and the upstream doublets traits.

Implementing Links and Doublets for LinkStorage lets this crate reuse the doublets::decorators layer instead of re-implementing uniqueness resolution and cascading deletion by hand. It is the direct analogue of what the C# implementation does in Foundation.Data.Doublets.Cli.NamedTypesDecorator.MakeLinks:

var links = new UnitedMemoryLinks<TLinkAddress>(databaseFilename);
return links.DecorateWithAutomaticUniquenessAndUsagesResolution();

LinkStorage plays the UnitedMemoryLinks role — a plain store with no policy of its own — and DecoratorsExt::with_automatic_uniqueness_and_usages_resolution supplies the policy.

The impls are also part of the public API on purpose: any embedder can now stack arbitrary upstream decorators (or its own) onto a LinkStorage, and pass one anywhere a doublets::Doublets<u32> is expected.

Functions§

link_storage_constants
The LinksConstants every LinkStorage reports.