/// <summary cref="IIntrinsicImplementationTransformer{TFirst, TSecond}.Transform(TFirst)"/>
 public IntrinsicMapping <TDelegate> Transform(IntrinsicImplementationManager.ImplementationEntry entry)
 {
     if (entry != null && CheckImplementations(Backend, entry, out var mainImplementation))
     {
         if (!mappings.TryGetValue(mainImplementation, out var mapping))
         {
             mapping = mainImplementation.ResolveMapping <TDelegate>();
             mappings.Add(mainImplementation, mapping);
         }
         return(mapping);
     }
     return(null);
 }
 private static bool CheckImplementations(
     Backend backend,
     IntrinsicImplementationManager.ImplementationEntry implementations,
     out IntrinsicImplementation mainImplementation)
 {
     mainImplementation = null;
     foreach (var implementation in implementations)
     {
         if (implementation.CanHandleBackend(backend))
         {
             mainImplementation = implementation;
             return(true);
         }
     }
     return(false);
 }