mirror of
https://github.com/StarBeat/UnityDependencyAnalyzer.git
synced 2026-03-08 05:35:27 +08:00
136 lines
4.5 KiB
C#
136 lines
4.5 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.IO;
|
|
using System.Linq;
|
|
using System.Net.Http;
|
|
using System.Threading;
|
|
using System.Threading.Tasks;
|
|
|
|
#nullable enable
|
|
using MemoryPack.Compression;
|
|
using MemoryPack.Formatters;
|
|
|
|
namespace MemoryPack {
|
|
|
|
#if !UNITY_2021_2_OR_NEWER
|
|
|
|
public sealed class Utf8StringFormatterAttribute : MemoryPackCustomFormatterAttribute<Utf8StringFormatter, string>
|
|
{
|
|
public override Utf8StringFormatter GetFormatter()
|
|
{
|
|
return Utf8StringFormatter.Default;
|
|
}
|
|
}
|
|
|
|
public sealed class Utf16StringFormatterAttribute : MemoryPackCustomFormatterAttribute<Utf16StringFormatter, string>
|
|
{
|
|
public override Utf16StringFormatter GetFormatter()
|
|
{
|
|
return Utf16StringFormatter.Default;
|
|
}
|
|
}
|
|
|
|
public sealed class OrdinalIgnoreCaseStringDictionaryFormatter<TValue> : MemoryPackCustomFormatterAttribute<DictionaryFormatter<string, TValue?>, Dictionary<string, TValue?>>
|
|
{
|
|
static readonly DictionaryFormatter<string, TValue?> formatter = new DictionaryFormatter<string, TValue?>(StringComparer.OrdinalIgnoreCase);
|
|
|
|
public override DictionaryFormatter<string, TValue?> GetFormatter()
|
|
{
|
|
return formatter;
|
|
}
|
|
}
|
|
|
|
public sealed class InternStringFormatterAttribute : MemoryPackCustomFormatterAttribute<InternStringFormatter, string>
|
|
{
|
|
public override InternStringFormatter GetFormatter()
|
|
{
|
|
return InternStringFormatter.Default;
|
|
}
|
|
}
|
|
|
|
public sealed class BitPackFormatterAttribute : MemoryPackCustomFormatterAttribute<BitPackFormatter, bool[]>
|
|
{
|
|
public override BitPackFormatter GetFormatter()
|
|
{
|
|
return BitPackFormatter.Default;
|
|
}
|
|
}
|
|
|
|
public sealed class BrotliFormatterAttribute : MemoryPackCustomFormatterAttribute<BrotliFormatter, byte[]>
|
|
{
|
|
public System.IO.Compression.CompressionLevel CompressionLevel { get; }
|
|
public int Window { get; }
|
|
public int DecompressionSizeLimit { get; }
|
|
|
|
public BrotliFormatterAttribute(System.IO.Compression.CompressionLevel compressionLevel = System.IO.Compression.CompressionLevel.Fastest, int window = BrotliUtils.WindowBits_Default, int decompressionSizeLimit = BrotliFormatter.DefaultDecompssionSizeLimit)
|
|
{
|
|
this.CompressionLevel = compressionLevel;
|
|
this.Window = window;
|
|
this.DecompressionSizeLimit = decompressionSizeLimit;
|
|
}
|
|
|
|
public override BrotliFormatter GetFormatter()
|
|
{
|
|
return new BrotliFormatter(CompressionLevel, Window, DecompressionSizeLimit);
|
|
}
|
|
}
|
|
|
|
public sealed class BrotliFormatterAttribute<T> : MemoryPackCustomFormatterAttribute<BrotliFormatter<T>, T>
|
|
{
|
|
public System.IO.Compression.CompressionLevel CompressionLevel { get; }
|
|
public int Window { get; }
|
|
|
|
public BrotliFormatterAttribute(System.IO.Compression.CompressionLevel compressionLevel = System.IO.Compression.CompressionLevel.Fastest, int window = BrotliUtils.WindowBits_Default)
|
|
{
|
|
this.CompressionLevel = compressionLevel;
|
|
this.Window = window;
|
|
}
|
|
|
|
public override BrotliFormatter<T> GetFormatter()
|
|
{
|
|
return new BrotliFormatter<T>(CompressionLevel, Window);
|
|
}
|
|
}
|
|
|
|
public sealed class BrotliStringFormatterAttribute : MemoryPackCustomFormatterAttribute<BrotliStringFormatter, string>
|
|
{
|
|
public System.IO.Compression.CompressionLevel CompressionLevel { get; }
|
|
public int Window { get; }
|
|
public int DecompressionSizeLimit { get; }
|
|
|
|
public BrotliStringFormatterAttribute(System.IO.Compression.CompressionLevel compressionLevel = System.IO.Compression.CompressionLevel.Fastest, int window = BrotliUtils.WindowBits_Default, int decompressionSizeLimit = BrotliFormatter.DefaultDecompssionSizeLimit)
|
|
{
|
|
this.CompressionLevel = compressionLevel;
|
|
this.Window = window;
|
|
this.DecompressionSizeLimit = decompressionSizeLimit;
|
|
}
|
|
|
|
public override BrotliStringFormatter GetFormatter()
|
|
{
|
|
return new BrotliStringFormatter(CompressionLevel, Window, DecompressionSizeLimit);
|
|
}
|
|
}
|
|
|
|
public sealed class MemoryPoolFormatterAttribute<T> : MemoryPackCustomFormatterAttribute<MemoryPoolFormatter<T>, Memory<T?>>
|
|
{
|
|
static readonly MemoryPoolFormatter<T> formatter = new MemoryPoolFormatter<T>();
|
|
|
|
public override MemoryPoolFormatter<T> GetFormatter()
|
|
{
|
|
return formatter;
|
|
}
|
|
}
|
|
|
|
public sealed class ReadOnlyMemoryPoolFormatterAttribute<T> : MemoryPackCustomFormatterAttribute<ReadOnlyMemoryPoolFormatter<T>, ReadOnlyMemory<T?>>
|
|
{
|
|
static readonly ReadOnlyMemoryPoolFormatter<T> formatter = new ReadOnlyMemoryPoolFormatter<T>();
|
|
|
|
public override ReadOnlyMemoryPoolFormatter<T> GetFormatter()
|
|
{
|
|
return formatter;
|
|
}
|
|
}
|
|
|
|
#endif
|
|
|
|
} |