public static Result <Variable, string> ParseLine(string line) { if (String.IsNullOrWhiteSpace(line)) { return(ParseLineResult.WithFailure(EMPTY_LINE)); } if (line[0] == '#') { return(ParseLineResult.WithFailure(COMMENT_LINE)); } var match = Regex.Match(line); if (match.Success) { var result = new Variable(match.Groups["key"].Value, match.Groups["value"].Value); return(ParseLineResult.WithSuccess(result)); } return(ParseLineResult.WithFailure(E_COULD_NOT_PARSE_LINE)); }