private static IEnumerable<QuantumType> ParseQ16(string value)
{
if (value.Length == 13 || value.Length == 17)
{
#if Q8
yield return ParseHexQ8(value, 1);
yield return ParseHexQ8(value, 5);
yield return ParseHexQ8(value, 9);
if (value.Length == 17)
yield return ParseHexQ8(value, 13);
#else
yield return ParseHex(value, 1, 4);
yield return ParseHex(value, 5, 4);
yield return ParseHex(value, 9, 4);
if (value.Length == 17)
yield return ParseHex(value, 13, 4);
#endif
}
else
throw new ArgumentException("Invalid hex value.", nameof(value));
}