public static bool TryLoading()

in src/DotPulsar/Internal/Compression/Lz4Compression.cs [31:62]


    public static bool TryLoading(out ICompressorFactory? compressorFactory, out IDecompressorFactory? decompressorFactory)
    {
        try
        {
            var assembly = Assembly.Load("K4os.Compression.LZ4");

            var definedTypes = assembly.DefinedTypes.ToArray();

            var lz4Codec = FindLZ4Codec(definedTypes);
            var lz4Level = FindLZ4Level(definedTypes);

            var methods = lz4Codec.GetMethods(BindingFlags.Public | BindingFlags.Static);

            var decode = FindDecode(methods);
            var encode = FindEncode(methods, lz4Level);
            var maximumOutputSize = FindMaximumOutputSize(methods);

            compressorFactory = new CompressorFactory(PulsarApi.CompressionType.Lz4, () => new Compressor(CreateCompressor(encode, maximumOutputSize)));
            decompressorFactory = new DecompressorFactory(PulsarApi.CompressionType.Lz4, () => new Decompressor(CreateDecompressor(decode)));

            return CompressionTester.TestCompression(compressorFactory, decompressorFactory);
        }
        catch
        {
            // Ignore
        }

        compressorFactory = null;
        decompressorFactory = null;

        return false;
    }