using Beam.Data; using Beam.Downloaders; using Beam.Dynamic; using Beam.Models; namespace Beam.Fluent { public static partial class DownloadBuilder { private sealed record TransformStage( WebResource Source, BeamDataContext Data, DownloadContextBuilder CtxBuilder) : ITransformStage, IAlternativeTransformStage { public IContextStage WithTransformer(Func> factory) { var transformer = factory(Data.Bindings[Source.Bindings]); return new ContextStage(CtxBuilder, transformer); } public IContextStage WithTransformer(AsyncTransformer transformer) { return new ContextStage(CtxBuilder, transformer); } } } }