namespace ArrowGraphHashed
An type-invariant immutable valued arrow (directed) graph. The connections are internally maintained using hashed collections See the Graph documentation and the ArrowGraphHashed API documentation
Companion interface: ArrowGraphHashed<N>
Interfaces
Name | Description |
---|---|
ArrowGraphHashed.Builder<N> | A mutable ArrowGraphHashed builder used to efficiently create new immutable instances. See the Graph documentation and the ArrowGraphHashed.Builder API documentation |
ArrowGraphHashed.Context<UN> | The ArrowGraphHashed's Context instance that serves as a factory for all related immutable instances and builders. |
ArrowGraphHashed.NonEmpty<N> | A non-empty type-invariant immutable valued arrow (directed) graph. The connections are internally maintained using hashed collections See the Graph documentation and the ArrowGraphHashed API documentation |
ArrowGraphHashed.Types | Utility interface that provides higher-kinded types for this collection. |
Static Methods
builder
Returns an empty builder instance.
builder
Definition
builder<N extends UN>():
WithGraphValues
<Tp, N, unknown>['builder'];
Type parameters
Name | Constraints | Description |
---|---|---|
N | UN |
ArrowValuedGraphHashed.builder<number, string>() // => ArrowValuedGraphHashed.Builder<number, string>
Overrides
createContext
Returns a new ArrowValuedGraphHashed context instance based on the given options
.
createContext
options
.Definition
createContext<UN>(options?: {
linkMapContext?:
HashMap.Context
<UN>;
linkConnectionsContext?:
HashSet.Context
<UN>;
}):
ArrowGraphHashed.Context
<UN>;
Type parameters
Name | Description |
---|---|
UN | the upper node type for which the context can create instances |
Parameters
Name | Type | Description |
---|---|---|
options | { linkMapContext?: HashMap.Context <UN>; linkConnectionsContext?: HashSet.Context <UN>; } | (optional) an object containing the following properties: - linkMapContext: (optional) the map context to use to maintain link maps - linkConnectionsContext: (optional) the set context to use to maintain link connections |
defaultContext
Returns the default context for this type of graph.
defaultContext
Definition
defaultContext<UN>():
ArrowGraphHashed.Context
<UN>;
Type parameters
Name | Description |
---|---|
UN | the upper node type that the context should accept |
empty
Returns the (singleton) empty instance of this type and context with given key and value types.
empty
Definition
empty<N extends UN>():
WithGraphValues
<Tp, N, unknown>['normal'];
Type parameters
Name | Constraints | Description |
---|---|---|
N | UN |
ArrowGraphHashed.empty<number>() // => ArrowGraphHashed<number>
ArrowGraphHashed.empty<string>() // => ArrowGraphHashed<string>
Overrides
from
Returns an immutable valued Graph, containing the graph elements from each of the given sources
.
from
sources
.Definitions
from<N extends UN>(...sources:
ArrayNonEmpty
<
StreamSource.NonEmpty
<GraphElement<N>>>):
WithGraphValues
<Tp, N, unknown>['nonEmpty'];
from<N extends UN>(...sources:
ArrayNonEmpty
<
StreamSource
<GraphElement<N>>>):
WithGraphValues
<Tp, N, unknown>['normal'];
Type parameters
Name | Constraints | Description |
---|---|---|
N | UN |
Parameters
Name | Type | Description |
---|---|---|
sources | ArrayNonEmpty < StreamSource.NonEmpty <GraphElement<N>>> | an array of StreamSource instances containing graph elements to add |
ArrowGraphHashed.from([[1], [2]], [[3, 4]]) // => ArrowGraphHashed.NonEmpty<number>
Overrides
of
Returns an immutable valued Graph instance containing the graph elements from the given graphElements
.
of
graphElements
.Definition
of<N extends UN>(...graphElements:
ArrayNonEmpty
<GraphElement<N>>):
WithGraphValues
<Tp, N, unknown>['nonEmpty'];
Type parameters
Name | Constraints | Description |
---|---|---|
N | UN |
Parameters
Name | Type | Description |
---|---|---|
graphElements | ArrayNonEmpty <GraphElement<N>> | a non-empty array of graph elements that are either a single tuple containing a node, or a triplet containing two connection nodes and the connection value. |
ArrowGraphHashed.of([1], [2], [3, 4]) // => ArrowGraphHashed.NonEmpty<number>
Overrides
reducer
Returns a Reducer
that adds received graph elements to a Graph and returns the Graph as a result. When a source
is given, the reducer will first create a graph from the source, and then add graph elements to it.
reducer
Reducer
that adds received graph elements to a Graph and returns the Graph as a result. When a source
is given, the reducer will first create a graph from the source, and then add graph elements to it.Definition
reducer<N extends UN>(source?:
StreamSource.NonEmpty
<GraphElement<N>>): Reducer<GraphElement<N>,
WithGraphValues
<Tp, N, unknown>['normal']>;
Type parameters
Name | Constraints | Description |
---|---|---|
N | UN |
Parameters
Name | Type | Description |
---|---|---|
source | StreamSource.NonEmpty <GraphElement<N>> | (optional) an initial source of graph elements to add to |
const someSource: GraphElement<number>[] = [[1, 2], [3], [5]];
const result = Stream.of([1, 3], [4, 3]).reduce(ArrowGraphSorted.reducer(someSource))
result.toArray() // => [[1, 2], [1, 3], [4, 3], [5]]
uses a builder under the hood. If the given source
is a Graph in the same context, it will directly call .toBuilder()
.