namespace ZB.MOM.WW.CBDD.Core.Compression;

/// <summary>
///     Snapshot of aggregated compression and decompression telemetry.
/// </summary>
public readonly struct CompressionStats
{
    /// <summary>
    ///     Gets or sets the CompressedDocumentCount.
    /// </summary>
    public long CompressedDocumentCount { get; init; }

    /// <summary>
    ///     Gets or sets the BytesBeforeCompression.
    /// </summary>
    public long BytesBeforeCompression { get; init; }

    /// <summary>
    ///     Gets or sets the BytesAfterCompression.
    /// </summary>
    public long BytesAfterCompression { get; init; }

    /// <summary>
    ///     Gets or sets the CompressionCpuTicks.
    /// </summary>
    public long CompressionCpuTicks { get; init; }

    /// <summary>
    ///     Gets or sets the DecompressionCpuTicks.
    /// </summary>
    public long DecompressionCpuTicks { get; init; }

    /// <summary>
    ///     Gets or sets the CompressionFailureCount.
    /// </summary>
    public long CompressionFailureCount { get; init; }

    /// <summary>
    ///     Gets or sets the ChecksumFailureCount.
    /// </summary>
    public long ChecksumFailureCount { get; init; }

    /// <summary>
    ///     Gets or sets the SafetyLimitRejectionCount.
    /// </summary>
    public long SafetyLimitRejectionCount { get; init; }
}