Source/Tx.Core/PassthroughTransformBuilder.cs (21 lines of code) (raw):

using System.Reflection; namespace Tx.Core { using System; using System.Reactive; public class PassthroughTransformBuilder : ITransformBuilder<IEnvelope> { public Func<TIn, IEnvelope> Build<TIn>() { if (typeof(IEnvelope).GetTypeInfo().IsAssignableFrom(typeof(TIn).GetTypeInfo())) { return Transform<TIn>; } return null; } private static IEnvelope Transform<TIn>(TIn item) { return item as IEnvelope; } } }