From 8d67a34d29e2452154a372f5bca33ff649e86577 Mon Sep 17 00:00:00 2001 From: Steven Fackler Date: Sun, 4 Jan 2015 08:03:51 -0800 Subject: [PATCH] Fix for upstream changes --- src/bn/mod.rs | 32 ++++++++++++++++++++++++-------- src/lib.rs | 2 +- 2 files changed, 25 insertions(+), 9 deletions(-) diff --git a/src/bn/mod.rs b/src/bn/mod.rs index 0bc79a8f..ead3093b 100644 --- a/src/bn/mod.rs +++ b/src/bn/mod.rs @@ -409,43 +409,57 @@ pub mod unchecked { use ffi; use super::{BigNum}; - impl<'a> Add<&'a BigNum, BigNum> for &'a BigNum { + impl<'a> Add<&'a BigNum> for &'a BigNum { + type Output = BigNum; + fn add(self, oth: &'a BigNum) -> BigNum { self.checked_add(oth).unwrap() } } - impl<'a> Sub<&'a BigNum, BigNum> for &'a BigNum { + impl<'a> Sub<&'a BigNum> for &'a BigNum { + type Output = BigNum; + fn sub(self, oth: &'a BigNum) -> BigNum { self.checked_sub(oth).unwrap() } } - impl<'a> Mul<&'a BigNum, BigNum> for &'a BigNum { + impl<'a> Mul<&'a BigNum> for &'a BigNum { + type Output = BigNum; + fn mul(self, oth: &'a BigNum) -> BigNum { self.checked_mul(oth).unwrap() } } - impl<'a> Div<&'a BigNum, BigNum> for &'a BigNum { + impl<'a> Div<&'a BigNum> for &'a BigNum { + type Output = BigNum; + fn div(self, oth: &'a BigNum) -> BigNum { self.checked_div(oth).unwrap() } } - impl<'a> Rem<&'a BigNum, BigNum> for &'a BigNum { + impl<'a> Rem<&'a BigNum> for &'a BigNum { + type Output = BigNum; + fn rem(self, oth: &'a BigNum) -> BigNum { self.checked_mod(oth).unwrap() } } - impl<'a> Shl for &'a BigNum { + impl<'a> Shl for &'a BigNum { + type Output = BigNum; + fn shl(self, n: i32) -> BigNum { self.checked_shl(&n).unwrap() } } - impl<'a> Shr for &'a BigNum { + impl<'a> Shr for &'a BigNum { + type Output = BigNum; + fn shr(self, n: i32) -> BigNum { self.checked_shr(&n).unwrap() } @@ -464,7 +478,9 @@ pub mod unchecked { } } - impl Neg for BigNum { + impl Neg for BigNum { + type Output = BigNum; + fn neg(self) -> BigNum { let mut n = self.clone(); n.negate(); diff --git a/src/lib.rs b/src/lib.rs index c89010ba..88a848e4 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -1,4 +1,4 @@ -#![feature(macro_rules, unsafe_destructor, globs)] +#![feature(macro_rules, unsafe_destructor, globs, associated_types, default_type_params, old_orphan_check)] #![crate_name="openssl"] #![crate_type="rlib"] #![crate_type="dylib"]