GenericCacheProvider<TCacheFormat>
Provides a strongly-typed wrapper over a non-generic CacheProvider.
            
                using System;
using System.Runtime.CompilerServices;
namespace Polly.Caching
{
    [System.Runtime.CompilerServices.NullableContext(1)]
    [System.Runtime.CompilerServices.Nullable(0)]
    internal sealed class GenericCacheProvider<[System.Runtime.CompilerServices.Nullable(2)] TCacheFormat> : ISyncCacheProvider<TCacheFormat>
    {
        private readonly ISyncCacheProvider _wrappedCacheProvider;
        internal GenericCacheProvider(ISyncCacheProvider nonGenericCacheProvider)
        {
            if (nonGenericCacheProvider == null)
                throw new ArgumentNullException("nonGenericCacheProvider");
            _wrappedCacheProvider = nonGenericCacheProvider;
        }
        [return: System.Runtime.CompilerServices.Nullable(new byte[] {
            0,
            2
        })]
        (bool, TCacheFormat) ISyncCacheProvider<TCacheFormat>.TryGet(string key)
        {
            (bool, object) valueTuple = _wrappedCacheProvider.TryGet(key);
            bool item = valueTuple.Item1;
            object item2 = valueTuple.Item2;
            return (item, (TCacheFormat)(item2 ?? ((object)default(TCacheFormat))));
        }
        void ISyncCacheProvider<TCacheFormat>.Put(string key, [System.Runtime.CompilerServices.Nullable(2)] TCacheFormat value, Ttl ttl)
        {
            _wrappedCacheProvider.Put(key, value, ttl);
        }
    }
}