# getNode

Get the node which should handle a given input string as a Computed.
Returns undefined if the ring is empty.

## Signatures

```ts
export declare const getNode: {
    (input: string): <A extends PrimaryKey.PrimaryKey, E, R>(ref: RefHashRing<A, E, R>) => RefSubject.Computed<A | undefined, E, R>;
    <A extends PrimaryKey.PrimaryKey, E, R>(ref: RefHashRing<A, E, R>, input: string): RefSubject.Computed<A | undefined, E, R>;
};
```

## Why

Projects the selected node for current reads and later pushes. An empty ring is represented by
`undefined` inside the Computed value; it does not become Filtered or add `NoSuchElementError`.

## Ownership and lifetime

The get node view retains no independent state. An Effect read samples the source once; Fx
observation follows later pushes and its observing Scope owns subscription cleanup.
