internal static bool TryParseFlag(StringSlice text, FlagMode mode, out FlagValue value) { if (text.IsEmpty) { value = default(FlagValue); return(false); } switch (mode) { case FlagMode.Char: value = new FlagValue(text.First()); return(true); case FlagMode.Long: var a = text.First(); value = text.Length >= 2 ? Create(a, text[1]) : new FlagValue(a); return(true); case FlagMode.Num: return(TryParseNumberFlag(text, out value)); case FlagMode.Uni: default: throw new NotSupportedException(); } }