public static Producer <TOut> Transform <TIn, TOut>(this Consumer <TIn> consumer, Func <ChannelReader <TIn>, ChannelWriter <TOut>, CancellationToken, Task> transform) { var actor = new TransformActor <TIn, TOut>(consumer, transform); actor.Start(); return(actor.Outbox); }
public static Producer <TOut> Transform <TIn, TOut>(this Producer <TIn> producer, Func <TIn, CancellationToken, ValueTask <TOut> > transform, ChannelOptions?options = null) { var actor = new TransformActor <TIn, TOut>(transform); producer.LinkTo(actor.Inbox, options); actor.Start(); return(actor.Outbox); }
/// <summary> /// Returns Props of given component's data corresponding actor. /// </summary> private Props ResolveComponent(SpaceObjectComponent component) { if (component is Transform transform) { return(TransformActor.Props(_worldContextFactory, transform)); } throw new TypeLoadException("Can't find corresponding space object component actor type for given data type."); }