public void Create (byte[] dict_buf)
 {
     if (dict_buf != null && dict_buf.Length > 0)
     {
         cdict_ = FunapiCompression.LoadCompressionDictionary(dict_buf, 1);
         ddict_ = FunapiCompression.LoadDecompressionDictionary(dict_buf);
     }
 }
    public void Destroy ()
    {
        if (cdict_ != (UIntPtr)0)
        {
            FunapiCompression.UnloadCompressionDictionary(cdict_);
            cdict_ = (UIntPtr)0;
        }

        if (ddict_ != (UIntPtr)0)
        {
            FunapiCompression.UnloadDecompressionDictionary(ddict_);
            ddict_ = (UIntPtr)0;
        }
    }
 public override ArraySegment<byte> Decompress (ArraySegment<byte> src, int expected_size)
 {
     return FunapiCompression.DecompressDeflate(src, expected_size);
 }
 public override ArraySegment<byte> Compress (ArraySegment<byte> src)
 {
     return FunapiCompression.CompressDeflate(src);
 }
 public override ArraySegment<byte> Decompress (ArraySegment<byte> src, int expected_size)
 {
     return FunapiCompression.DecompressZstd(src, expected_size, ddict_);
 }
 public override ArraySegment<byte> Compress (ArraySegment<byte> src)
 {
     return FunapiCompression.CompressZstd(src, cdict_);
 }