Skip to content

Commit db24996

Browse files
committed
Add support for more ratio multiplications
1 parent 42be516 commit db24996

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

src/eval/ops.rs

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -171,29 +171,37 @@ pub fn mul(lhs: Value, rhs: Value) -> StrResult<Value> {
171171

172172
(Length(a), Int(b)) => Length(a * b as f64),
173173
(Length(a), Float(b)) => Length(a * b),
174+
(Length(a), Ratio(b)) => Length(a * b.get()),
174175
(Int(a), Length(b)) => Length(b * a as f64),
175176
(Float(a), Length(b)) => Length(b * a),
177+
(Ratio(a), Length(b)) => Length(b * a.get()),
176178

177179
(Angle(a), Int(b)) => Angle(a * b as f64),
178180
(Angle(a), Float(b)) => Angle(a * b),
181+
(Angle(a), Ratio(b)) => Angle(a * b.get()),
179182
(Int(a), Angle(b)) => Angle(a as f64 * b),
180183
(Float(a), Angle(b)) => Angle(a * b),
184+
(Ratio(a), Angle(b)) => Angle(a.get() * b),
181185

182186
(Ratio(a), Ratio(b)) => Ratio(a * b),
183187
(Ratio(a), Int(b)) => Ratio(a * b as f64),
184188
(Ratio(a), Float(b)) => Ratio(a * b),
185-
(Float(a), Ratio(b)) => Ratio(a * b),
186189
(Int(a), Ratio(b)) => Ratio(a as f64 * b),
190+
(Float(a), Ratio(b)) => Ratio(a * b),
187191

188192
(Relative(a), Int(b)) => Relative(a * b as f64),
189193
(Relative(a), Float(b)) => Relative(a * b),
194+
(Relative(a), Ratio(b)) => Relative(a * b.get()),
190195
(Int(a), Relative(b)) => Relative(a as f64 * b),
191196
(Float(a), Relative(b)) => Relative(a * b),
197+
(Ratio(a), Relative(b)) => Relative(a.get() * b),
192198

193-
(Float(a), Fraction(b)) => Fraction(a * b),
194199
(Fraction(a), Int(b)) => Fraction(a * b as f64),
195200
(Fraction(a), Float(b)) => Fraction(a * b),
201+
(Fraction(a), Ratio(b)) => Fraction(a * b.get()),
196202
(Int(a), Fraction(b)) => Fraction(a as f64 * b),
203+
(Float(a), Fraction(b)) => Fraction(a * b),
204+
(Ratio(a), Fraction(b)) => Fraction(a.get() * b),
197205

198206
(Str(a), Int(b)) => Str(a.repeat(b)?),
199207
(Int(a), Str(b)) => Str(b.repeat(a)?),

0 commit comments

Comments
 (0)