API
A coherent API with no magic at runtime: one entry point, generators that compose through fluent methods, and a value produced only on the final call.
Entry point
One door in, and the contract every generator it produces satisfies — from the simplest primitive to a generator composed of several.
Any · AnyContext · IAny<T>
Primitive generators
The basic generators: one fluent constraint at a time, and nothing drawn until Generate is called.
AnyBoolean · AnyByte · AnyChar · …
URIs
Every URI family the library can draw, each narrowed to only the components that family actually has.
AnyFtpUri · AnyMailtoUri · AnyRelativeUri · …
Collections
Arrays, lists, sequences, sets and dictionaries, each built over a generator for its elements.
AnyArray<T> · AnyCollection<TItem, TResult, TSelf> · AnyDictionary<TKey, TValue> · …
Composition
Turning several generators into one — through a factory, a tuple, a closed set of choices, or an optional value.
AnyExtensions · AnyOneOf<T> · Combine · …
Seeds & reproducibility
What makes a failure on an arbitrary value replayable exactly, instead of a mystery that looks different on every run.
ReproducibleAttribute · Reproducibly · ReproduciblyAsync · …
Pool inspection
What a generator's declared constraints leave of a value set you supplied yourself — the values still drawable, and the ones refused, each naming the constraint that refused it.
DeclaredConstraint · IPoolInspection<T> · PoolRejection<T>
Exceptions
The family the library throws on its own behalf, and which member appears for which kind of refusal.
AnyGenerationException · ConflictingAnyConstraintException · DummyException · …