@@ -88,6 +88,62 @@ ErrorValue IndexOutOfBoundsError(ptrdiff_t index) {
88
88
absl::InvalidArgumentError (absl::StrCat (" index out of bounds: " , index)));
89
89
}
90
90
91
+ ErrorValue IntDivisionByZeroError () {
92
+ return ErrorValue (absl::InvalidArgumentError (" int division by zero" ));
93
+ }
94
+
95
+ ErrorValue UintDivisionByZeroError () {
96
+ return ErrorValue (absl::InvalidArgumentError (" uint division by zero" ));
97
+ }
98
+
99
+ ErrorValue IntModuloByZeroError () {
100
+ return ErrorValue (absl::InvalidArgumentError (" int modulo by zero" ));
101
+ }
102
+
103
+ ErrorValue UintModuloByZeroError () {
104
+ return ErrorValue (absl::InvalidArgumentError (" uint modulo by zero" ));
105
+ }
106
+
107
+ ErrorValue IntOverflowError () {
108
+ return ErrorValue (absl::OutOfRangeError (" int overflow" ));
109
+ }
110
+
111
+ ErrorValue UintOverflowError () {
112
+ return ErrorValue (absl::OutOfRangeError (" uint overflow" ));
113
+ }
114
+
115
+ ErrorValue DurationOverflowError () {
116
+ return ErrorValue (absl::OutOfRangeError (" duration overflow" ));
117
+ }
118
+
119
+ ErrorValue TimestampOverflowError () {
120
+ return ErrorValue (absl::OutOfRangeError (" timestamp overflow" ));
121
+ }
122
+
123
+ ErrorValue DoubleToIntOutOfRangeError () {
124
+ return ErrorValue (absl::OutOfRangeError (" double out of int range" ));
125
+ }
126
+
127
+ ErrorValue DoubleToUintOutOfRangeError () {
128
+ return ErrorValue (absl::OutOfRangeError (" double out of uint range" ));
129
+ }
130
+
131
+ ErrorValue IntToUintOutOfRangeError () {
132
+ return ErrorValue (absl::OutOfRangeError (" int out of uint range" ));
133
+ }
134
+
135
+ ErrorValue UintToIntOutOfRangeError () {
136
+ return ErrorValue (absl::OutOfRangeError (" uint out of int range" ));
137
+ }
138
+
139
+ ErrorValue Int64ToInt32OutOfRangeError () {
140
+ return ErrorValue (absl::OutOfRangeError (" int64 out of int32_t range" ));
141
+ }
142
+
143
+ ErrorValue Uint64ToUint32OutOfRangeError () {
144
+ return ErrorValue (absl::OutOfRangeError (" uint64 out of uint32_t range" ));
145
+ }
146
+
91
147
bool IsNoSuchField (const ErrorValue& value) {
92
148
return absl::IsNotFound (value.NativeValue ()) &&
93
149
absl::StartsWith (value.NativeValue ().message (), " no_such_field" );
0 commit comments