API
Une API cohérente et sans magie à l'exécution : un point d'entrée, des générateurs qui se composent par méthode fluide, et une valeur produite seulement au dernier appel.
Point d'entrée
Une seule porte d'entrée, et le contrat que respecte tout ce qu'elle produit — du générateur le plus simple au plus composé.
Any · AnyContext · IAny<T>
Générateurs de primitives
Les générateurs de base : une contrainte fluide à la fois, et rien n'est tiré avant l'appel à Generate.
AnyBoolean · AnyByte · AnyChar · …
URI
Toutes les familles d'URI que la bibliothèque sait tirer, chacune réduite aux seuls composants que cette famille possède réellement.
AnyFtpUri · AnyMailtoUri · AnyRelativeUri · …
Collections
Tableaux, listes, séquences, ensembles et dictionnaires, chacun construit sur un générateur pour ses éléments.
AnyArray<T> · AnyCollection<TItem, TResult, TSelf> · AnyDictionary<TKey, TValue> · …
Composition
Transformer plusieurs générateurs en un seul — par une fabrique, un tuple, un ensemble de choix fermé, ou une valeur optionnelle.
AnyExtensions · AnyOneOf<T> · Combine · …
Seeds et reproductibilité
Ce qui rend un échec sur une valeur arbitraire exactement rejouable, plutôt qu'un mystère qui change d'apparence à chaque exécution.
ReproducibleAttribute · Reproducibly · ReproduciblyAsync · …
Inspection de pool
Ce que les contraintes déclarées d'un générateur laissent d'un ensemble de valeurs que vous avez fourni vous-même — celles encore tirables, et celles refusées, chacune nommant la contrainte qui l'a refusée.
DeclaredConstraint · IPoolInspection<T> · PoolRejection<T>
Exceptions
La famille que la bibliothèque lève elle-même, et quel membre apparaît pour quelle nature de refus.
AnyGenerationException · ConflictingAnyConstraintException · DummyException · …