Gjallarhorn


Gjallarhorn

Gjallarhorn Namespace

TypeDescription
AsyncMutable<'a>

Type which manages state internally using a mailbox

AtomicMutable<'a>

A thread-safe wrapper using interlock for a mutable value with change notification

IAsyncMutatable<'a>

Interface for mutable types that have asynchronous support atomic update functionality

IAtomicMutatable<'a>

Interface for mutable types that have atomic update functionality

IMutatable<'a>

Core interface for all mutatable types

ISignal<'a>

Core interface for signals All signals must also inherit Internal.IDependent and Internal.ITracksDependents.

IValidatedSignal<'a, 'b>

The output of validating an input signal

ObservableSource<'a>
ValidationResult

Defines a validation result

ModuleDescription
Mutable

Manages creation of mutable variables

Observable

Additional functions related to Observable for use with Gjallarhorn

Signal

Provides mechanisms for working with signals

Validation

Basic validation support

Gjallarhorn.Helpers Namespace

TypeDescription
CompositeDisposable

Type which allows tracking of multiple disposables at once

ICompositeDisposable

A disposable type that manages multiple other disposables, and disposes all of them when disposed

IdleTracker

Type which tracks execution, used for tracked async operations Acts as a ISignal&lt;bool&gt; with value of true when idle, false when executing

Gjallarhorn.Interaction Namespace

TypeDescription
Direct<'a>

Used to directly map a signal to a user. No notification exists in this case.

InOut<'a, 'b>

Used as an input and output mapping to report and fetch data from a user

MutatableInOut<'a, 'b>

Used as an input and output mapping which mutates an input IMutatable, with validation to report and fetch data from a user

Out<'a>

Used as an output mapping to fetch data from a user

Report<'a, 'b>

Used to report data to a user

ValidatedInOut<'a, 'b, 'c>

Used as an input and output mapping with validation to report and fetch data from a user

ValidatedOut<'a, 'b>

Used as an output mapping with validation to fetch data from a user

ValidatedReport<'a, 'b>

Used to report data to a user with validation

Validation<'a, 'b>

A single step in a validation chain

ModuleDescription
IO

Creates IO handles for use with Gjallarhorn adapters, like Gjallarhorn.Bindable

Gjallarhorn.Internal Namespace

TypeDescription
IDependencyManager<'a>

Type used to track dependencies

IDependent

A type which depends on a signal

ITracksDependents

Interface that allows a type to remotely add itself as a dependent

Mutable<'a>

A lightweight wrapper for a mutable value which provides a mechanism for change notification as needed

SignalBase<'a>

Base class which simplifies implementation of standard signals

ModuleDescription
Dependencies

Module used to create and manage dependencies

WeakRef

Helper module for dealing with weak references

Gjallarhorn.Linq Namespace

TypeDescription
Mutable

Functions for working with Mutables from C#

ObservableExtensions

Extension methods for working with Observables from C# using a LINQ inspired API

Signal

Functions for working with Signals from C#

SignalExtensions

Extension methods for working with Signals from C# using a LINQ inspired API

Fork me on GitHub