public ReadResults Read(out Angle result) { result = default; if (!StringReader.CanRead()) { return(ReadResults.Failure(CommandError.ExpectedAngle().WithContext(StringReader))); } if (StringReader.Peek() == '^') { return(ReadResults.Failure(CommandError.MixedCoordinateType().WithContext(StringReader))); } bool isRelative = IsRelative(); if (StringReader.AtEndOfArgument()) { result = new Angle(0.0f, isRelative); return(ReadResults.Success()); } ReadResults readResults = StringReader.ReadFloat(out float value); if (readResults.Successful) { result = new Angle(value, isRelative); } return(readResults); }