v1.39.0 ✅
OneOf<T1..T8>sealed class — allOneOftypes converted fromreadonly structtosealed class;OneOf<T1..T7>andOneOf<T1..T8>added for full arity symmetry ⚠️ breaking: copy→reference semanticsOneOfBase<T1..T8>— unconstrained abstract class holding all shared dispatch (IsT1..T8,AsT1..T8,Match,Switch,Equals,GetHashCode,ToString);OneOfandErrorsOfboth inherit itIOneOf<T1..T8>— shared interface implemented by bothOneOf<>andErrorsOf<>; enables generic programming over any discriminated unionErrorsOf<T1..T8>— new error union type;where Ti : IError; implementsIError(delegatesMessage/Tagsto active case); implicit conversions from eachTi; factory methodsFromT1..FromT8Result<TValue, TError>— new typed result withwhere TError : IError; factoryOk(value)/Fail(error);IsSuccess,IsFailure,Value,ErrorBind×7 — typed pipeline — grows the error union one slot per step (Result<T,T1> + T2 → Result<T, ErrorsOf<T1,T2>>… through 7→8 slot); enables compile-time exhaustiveMatchat callsitesMap,Tap,TapOnFailure— typed pipeline — value transform / side effects onResult<TValue, TError>; error type unchangedEnsure×7 +EnsureAsync×7 — typed pipeline — guard conditions that widen the error union (same O(n) growth pattern asBind); async variant acceptsFunc<TValue, Task<bool>>MapError— typed pipeline — translates the error surface viaFunc<TErrorIn, TErrorOut>; collapse unions, adapt at layer boundariesResult.Flowtype-read mode — failure edges in generated Mermaid diagrams now show the exactErrorsOf<...>type forResult<T, TError>pipelines; zero body scanning; HTML-escaped angle brackets for Mermaid compatibility- 153 features across 13 categories
-
4,000 tests