14
14
) ]
15
15
#![ doc = include_str ! ( "../README.md" ) ]
16
16
17
- #[ macro_use]
18
- extern crate derivative;
19
-
20
17
#[ macro_use]
21
18
extern crate ark_std;
22
19
@@ -28,7 +25,7 @@ use ark_serialize::{CanonicalDeserialize, CanonicalSerialize};
28
25
use ark_std:: {
29
26
fmt:: { Debug , Display } ,
30
27
hash:: Hash ,
31
- ops:: { Add , AddAssign , Mul , MulAssign } ,
28
+ ops:: { Add , AddAssign , Mul , MulAssign , Neg , Sub , SubAssign } ,
32
29
vec:: Vec ,
33
30
} ;
34
31
pub use scalar_mul:: { variable_base:: VariableBaseMSM , ScalarMul } ;
@@ -82,8 +79,8 @@ pub trait CurveGroup:
82
79
PrimeGroup
83
80
+ Add < Self :: Affine , Output = Self >
84
81
+ AddAssign < Self :: Affine >
85
- // + for<'a> Add<&'a Self::Affine, Output = Self>
86
- // + for<'a> AddAssign<&'a Self::Affine>
82
+ + Sub < Self :: Affine , Output = Self >
83
+ + SubAssign < Self :: Affine >
87
84
+ VariableBaseMSM
88
85
+ ScalarMul < MulBase = Self :: Affine >
89
86
+ From < Self :: Affine >
@@ -138,12 +135,17 @@ pub trait AffineRepr:
138
135
+ Debug
139
136
+ Display
140
137
+ Zeroize
138
+ + Neg
141
139
+ From < <Self as AffineRepr >:: Group >
142
140
+ Into < <Self as AffineRepr >:: Group >
143
141
+ Add < Self , Output = Self :: Group >
144
142
+ for < ' a > Add < & ' a Self , Output = Self :: Group >
145
143
+ Add < Self :: Group , Output = Self :: Group >
146
144
+ for < ' a > Add < & ' a Self :: Group , Output = Self :: Group >
145
+ + Sub < Self , Output = Self :: Group >
146
+ + for < ' a > Sub < & ' a Self , Output = Self :: Group >
147
+ + Sub < Self :: Group , Output = Self :: Group >
148
+ + for < ' a > Sub < & ' a Self :: Group , Output = Self :: Group >
147
149
+ Mul < Self :: ScalarField , Output = Self :: Group >
148
150
+ for < ' a > Mul < & ' a Self :: ScalarField , Output = Self :: Group >
149
151
{
0 commit comments