Open sandboxFocus

Namespace Metalama.Framework.Options

Classes

HierarchicalOptionsAttribute

Custom attribute that, when applied to a class implementing the IHierarchicalOptions interface, specifies how the options are inherited.

IncrementalHashSet

Factory methods for the IncrementalHashSet<T> generic class.

IncrementalHashSet<T>

An immutable hash set where each class instance does not represent the full set but a modification of another set (possibly empty). This class implements the IIncrementalObject interface and can be easily used in the context of an IHierarchicalOptions<T>. The class can represent the Add(T), Remove(T) and Clear<T>() operations.

IncrementalKeyedCollection

Factory for the generic IncrementalKeyedCollection<TKey, TValue> class.

IncrementalKeyedCollection<TKey, TValue>

An immutable keyed collection where each class instance does not represent the full collection but a modification of another collection (possibly empty). This class implements the IIncrementalObject interface and can be easily used in the context of an IHierarchicalOptions<T>. The class can represent the AddOrApplyChanges(TValue), Remove(TKey) and Clear<TKey, TValue>() operations.

IncrementalObjectExtensions

Extensions of the IIncrementalObject interface.

OptionsInitializationContext

Context of the GetDefaultOptions(OptionsInitializationContext) method.

Structs

ApplyChangesContext

Context of an ApplyChanges(object, in ApplyChangesContext) operation.

IncrementalKeyedCollection<TKey, TValue>.Item

OptionsProviderContext

Context for the IHierarchicalOptionsProvider.GetOptions(in OptionsProviderContext) method.

Interfaces

IHierarchicalOptions

Base interface for hierarchical options. Hierarchical options are options exposed and consumed by aspects and fabrics. Users can typically set options at different levels of the code level: for the whole project, for a namespace, for a type, or for a member, as decided by the aspect author.

IHierarchicalOptionsManager

Provides read-only access to hierarchical options.

IHierarchicalOptionsProvider

A base interface for attributes that provide options.

IHierarchicalOptions<T>

An interface, derived from the non-generic IHierarchicalOptions, that means that the options can be set on the type of declarations specified by the generic parameter.

IIncrementalKeyedCollectionItem<TKey>

An item in a IncrementalKeyedCollection<TKey, TValue>.

IIncrementalObject

A base interface for all classes whose individual instances represent incremental changes that can be combined with the ApplyChanges(object, in ApplyChangesContext) method.

Enums

ApplyChangesAxis

Enumerates the axes along which two option layers can be merged by the ApplyChanges(object, in ApplyChangesContext) method.