pub trait Module<Scalar>: AbelianGroup + Mul<Scalar, Output = Self>where
Scalar: CommutativeRing,{ }Expand description
Right scalar action of a commutative ring on an abelian group.
Module<Scalar> is parameterized by the scalar carrier. The element carrier
is Self, and the scalar action is expressed by Self: Mul<Scalar>. In this
crate that matches elliptic-curve notation as point * scalar.
A left action would be a different Rust operation shape,
Scalar: Mul<Self>. Do not implement this trait for a left-only action by
swapping argument meaning in the implementation.
Law: a * (s + t) == a * s + a * t.
Law: (a + b) * s == a * s + b * s.
Law: a * (s * t) == (a * s) * t.
Law: a * Scalar::one() == a.
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety".