Files
Toolkit2/Toolkit.UI.Controls.Avalonia/QrCode/Encoding/Masking/PatternFactory.cs
T
2024-04-13 11:41:33 +01:00

32 lines
844 B
C#

using System;
using System.Collections.Generic;
namespace Gma.QrCodeNet.Encoding.Masking;
internal class PatternFactory
{
internal Pattern CreateByType(MaskPatternType maskPatternType)
{
return maskPatternType switch
{
MaskPatternType.Type0 => new Pattern0(),
MaskPatternType.Type1 => new Pattern1(),
MaskPatternType.Type2 => new Pattern2(),
MaskPatternType.Type3 => new Pattern3(),
MaskPatternType.Type4 => new Pattern4(),
MaskPatternType.Type5 => new Pattern5(),
MaskPatternType.Type6 => new Pattern6(),
MaskPatternType.Type7 => new Pattern7(),
_ => throw new NotSupportedException("This should never happen.")
};
}
internal IEnumerable<Pattern> AllPatterns()
{
foreach (MaskPatternType patternType in Enum.GetValues(typeof(MaskPatternType)))
{
yield return CreateByType(patternType);
}
}
}