Closed kevinresol closed 7 years ago
Added regroup() and make map/filter base on it. It is basically:
interface StreamObject<Item, Quality> { function regroup<Ret>(f:Array<Item>->RegroupStatus<Quality>->RegroupResult<Ret, Quality>):Stream<Ret, Quality>; } enum RegroupStatus<Quality> { Flowing:RegroupStatus<Quality>; Errored(e:Error):RegroupStatus<Error>; Ended:RegroupStatus<Quality>; } enum RegroupResult<Out, Quality> { Converted(data:Out):RegroupResult<Out, Quality>; Swallowed:RegroupResult<Out, Quality>; Untouched:RegroupResult<Out, Quality>; Errored(e:Error):RegroupResult<Out, Error>; }
Added regroup() and make map/filter base on it. It is basically: