/// <summary> /// Compress the value into a byte array. /// </summary> /// <returns></returns> public virtual byte[] Compress() { if (!CompressionEnabled) { return(GetDefaultSerialization()); } uint range = GetValueRange(); uint requiredBytes = Arithmetics <T> .GetRequiredBytes(range, GetSizeOf()); T compressed = GetCompressedValue(); byte[] source = GetDefaultSerialization(); byte[] destination = new byte[requiredBytes]; Array.Copy(source, destination, requiredBytes); return(destination); }