IHasCompressionPreference
The IHasCompressionPreference trait allows an item to declare the compression algorithm it wants to be processed with.
Properties
CompressionPreference
CompressionPreference CompressionPreference { get; }
This property gets the preferred algorithm to compress the item with. The CompressionPreference enum specifies the available compression algorithms.
The CompressionPreference enum defines the following values (at time of writing):  
- NoPreference: No preference is specified.
- Copy: Do not compress at all, copy data verbatim.
- ZStandard: Compress with ZStandard.
- Lz4: Compress with LZ4.
Usage
public class MyCompressibleItem : IHasCompressionPreference
{
    /// <inheritdoc />
    public required CompressionPreference CompressionPreference { get; init; }
}
// Set the preference.
MyCompressibleItem.CompressionPreference = CompressionPreference.Lz4;
In this example, MyCompressibleItem implements the IHasCompressionPreference interface.
MyCompressibleItem can then be used in methods constrained with where T : IHasCompressionPreference.