MCPcopy Create free account
hub / github.com/cel-expr/cel-go / parseFormattingClause

Function parseFormattingClause

ext/formatting.go:846–873  ·  view source on GitHub ↗
(formatStr string, callback formatStringInterpolator, maxPrecision int)

Source from the content-addressed store, hash-verified

844}
845
846func parseFormattingClause(formatStr string, callback formatStringInterpolator, maxPrecision int) (int, clauseImpl, error) {
847 i := 0
848 read, precision, err := parsePrecision(formatStr[i:], maxPrecision)
849 i += read
850 if err != nil {
851 return -1, nil, fmt.Errorf("error while parsing precision: %w", err)
852 }
853 r := rune(formatStr[i])
854 i++
855 switch r {
856 case 's':
857 return i, callback.String, nil
858 case 'd':
859 return i, callback.Decimal, nil
860 case 'f':
861 return i, callback.Fixed(precision), nil
862 case 'e':
863 return i, callback.Scientific(precision), nil
864 case 'b':
865 return i, callback.Binary, nil
866 case 'x', 'X':
867 return i, callback.Hex(unicode.IsUpper(r)), nil
868 case 'o':
869 return i, callback.Octal, nil
870 default:
871 return -1, nil, fmt.Errorf("unrecognized formatting clause \"%c\"", r)
872 }
873}
874
875func parsePrecision(formatStr string, maxPrecision int) (int, *int, error) {
876 i := 0

Callers 1

parseAndFormatClauseFunction · 0.85

Calls 4

parsePrecisionFunction · 0.85
FixedMethod · 0.65
ScientificMethod · 0.65
HexMethod · 0.65

Tested by

no test coverage detected