@@ -88,6 +88,62 @@ ErrorValue IndexOutOfBoundsError(ptrdiff_t index) {
8888 absl::InvalidArgumentError (absl::StrCat (" index out of bounds: " , index)));
8989}
9090
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+
91147bool IsNoSuchField (const ErrorValue& value) {
92148 return absl::IsNotFound (value.NativeValue ()) &&
93149 absl::StartsWith (value.NativeValue ().message (), " no_such_field" );
0 commit comments