You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
StreamBuilder<TIn, TCurrent> and other Streams carry two generic parameters, but TCurrent is effectively “the current stream element type” and is already represented by the builder instance’s type. In practice, TIn is only needed for the initial stream/root input, while TCurrent is re-declared and threaded through many interfaces and builders, increasing API surface and cognitive load without adding real value.
Goal
Simplify the public API by removing TCurrent where it is redundant, while keeping fluent chaining and type-safety (the “current type” should be the builder’s single generic type).
varstream=StreamBuilder<MyInput>.CreateNewStream("my-stream").Stream()// or .Stream(source).Map(x => ...).Filter(x => ...).GroupBy(...).Sink(x => ...).Build();
Note
This will be a breaking change
StreamBuilder<TIn, TCurrent>and other Streams carry two generic parameters, butTCurrentis effectively “the current stream element type” and is already represented by the builder instance’s type. In practice,TInis only needed for the initial stream/root input, while TCurrent is re-declared and threaded through many interfaces and builders, increasing API surface and cognitive load without adding real value.Goal
Simplify the public API by removing
TCurrentwhere it is redundant, while keeping fluent chaining and type-safety (the “current type” should be the builder’s single generic type).