fn add()

in interactive_engine/executor/common/dyn_type/src/arith.rs [25:189]


    fn add(self, other: Primitives) -> Self::Output {
        use super::Primitives::*;
        match (self, other) {
            (Double(a), Double(b)) => Double(a + b),
            (Double(a), Float(b)) => Double(a + b as f64),
            (Double(a), ULLong(b)) => Double(a + b as f64),
            (Double(a), ULong(b)) => Double(a + b as f64),
            (Double(a), Long(b)) => Double(a + b as f64),
            (Double(a), UInteger(b)) => Double(a + b as f64),
            (Double(a), Integer(b)) => Double(a + b as f64),
            (Double(a), Byte(b)) => Double(a + b as f64),
            (Float(a), Double(b)) => Double(a as f64 + b),
            (ULLong(a), Double(b)) => Double(a as f64 + b),
            (ULong(a), Double(b)) => Double(a as f64 + b),
            (Long(a), Double(b)) => Double(a as f64 + b),
            (UInteger(a), Double(b)) => Double(a as f64 + b),
            (Integer(a), Double(b)) => Double(a as f64 + b),
            (Byte(a), Double(b)) => Double(a as f64 + b),
            (Float(a), Float(b)) => Float(a + b),
            (Float(a), ULLong(b)) => Float(a + b as f32),
            (Float(a), ULong(b)) => Float(a + b as f32),
            (Float(a), Long(b)) => Float(a + b as f32),
            (Float(a), UInteger(b)) => Float(a + b as f32),
            (Float(a), Integer(b)) => Float(a + b as f32),
            (Float(a), Byte(b)) => Float(a + b as f32),
            (ULLong(a), Float(b)) => Float(a as f32 + b),
            (ULong(a), Float(b)) => Float(a as f32 + b),
            (Long(a), Float(b)) => Float(a as f32 + b),
            (UInteger(a), Float(b)) => Float(a as f32 + b),
            (Integer(a), Float(b)) => Float(a as f32 + b),
            (Byte(a), Float(b)) => Float(a as f32 + b),
            (ULLong(a), ULLong(b)) => ULLong(a + b),
            (ULLong(a), ULong(b)) => ULLong(a + b as u128),
            (ULLong(a), Long(b)) => {
                if b < 0 {
                    ULLong(a - b.abs() as u128)
                } else {
                    ULLong(a + b as u128)
                }
            }
            (ULLong(a), UInteger(b)) => ULLong(a + b as u128),
            (ULLong(a), Integer(b)) => {
                if b < 0 {
                    ULLong(a - b.abs() as u128)
                } else {
                    ULLong(a + b as u128)
                }
            }
            (ULLong(a), Byte(b)) => {
                if b < 0 {
                    ULLong(a - b.abs() as u128)
                } else {
                    ULLong(a + b as u128)
                }
            }
            (ULong(a), ULLong(b)) => ULLong(a as u128 + b),
            (Long(a), ULLong(b)) => {
                if a < 0 {
                    ULLong(b - a.abs() as u128)
                } else {
                    ULLong(a as u128 + b)
                }
            }
            (UInteger(a), ULLong(b)) => ULLong(a as u128 + b),
            (Integer(a), ULLong(b)) => {
                if a < 0 {
                    ULLong(b - a.abs() as u128)
                } else {
                    ULLong(a as u128 + b)
                }
            }
            (Byte(a), ULLong(b)) => {
                if a < 0 {
                    ULLong(b - a.abs() as u128)
                } else {
                    ULLong(a as u128 + b)
                }
            }
            (ULong(a), ULong(b)) => ULong(a + b),
            (ULong(a), Long(b)) => {
                if b < 0 {
                    ULong(a - b.abs() as u64)
                } else {
                    ULong(a + b as u64)
                }
            }
            (ULong(a), UInteger(b)) => ULong(a + b as u64),
            (ULong(a), Integer(b)) => {
                if b < 0 {
                    ULong(a - b.abs() as u64)
                } else {
                    ULong(a + b as u64)
                }
            }
            (ULong(a), Byte(b)) => {
                if b < 0 {
                    ULong(a - b.abs() as u64)
                } else {
                    ULong(a + b as u64)
                }
            }
            (Long(a), ULong(b)) => {
                if a < 0 {
                    ULong(b - a.abs() as u64)
                } else {
                    ULong(a as u64 + b)
                }
            }
            (UInteger(a), ULong(b)) => ULong(a as u64 + b),
            (Integer(a), ULong(b)) => {
                if a < 0 {
                    ULong(b - a.abs() as u64)
                } else {
                    ULong(a as u64 + b)
                }
            }
            (Byte(a), ULong(b)) => {
                if a < 0 {
                    ULong(b - a.abs() as u64)
                } else {
                    ULong(a as u64 + b)
                }
            }
            (Long(a), Long(b)) => Long(a + b),
            (Long(a), UInteger(b)) => Long(a + b as i64),
            (Long(a), Integer(b)) => Long(a + b as i64),
            (Long(a), Byte(b)) => Long(a + b as i64),
            (UInteger(a), Long(b)) => Long(a as i64 + b),
            (Integer(a), Long(b)) => Long(a as i64 + b),
            (Byte(a), Long(b)) => Long(a as i64 + b),
            (UInteger(a), UInteger(b)) => UInteger(a + b),
            (UInteger(a), Integer(b)) => {
                if b < 0 {
                    UInteger(a - b.abs() as u32)
                } else {
                    UInteger(a + b as u32)
                }
            }
            (UInteger(a), Byte(b)) => {
                if b < 0 {
                    UInteger(a - b.abs() as u32)
                } else {
                    UInteger(a + b as u32)
                }
            }
            (Integer(a), UInteger(b)) => {
                if a < 0 {
                    UInteger(b - a.abs() as u32)
                } else {
                    UInteger(a as u32 + b)
                }
            }
            (Byte(a), UInteger(b)) => {
                if a < 0 {
                    UInteger(b - a.abs() as u32)
                } else {
                    UInteger(a as u32 + b)
                }
            }
            (Integer(a), Integer(b)) => Integer(a + b),
            (Integer(a), Byte(b)) => Integer(a + b as i32),
            (Byte(a), Integer(b)) => Integer(a as i32 + b),
            (Byte(a), Byte(b)) => Byte(a + b),
        }
    }