Right now Field::zero() and Field::one() are static methods of the Field trait.
If they were instead associated constants, e.g. Field::ZERO/Field::ONE, they can be used in const contexts such as defining other constants:
pub struct ProjectivePoint<Fe: Field> { x: Fe, y: Fe, z: Fe }
impl<Fe: Field> ProjectivePoint<Fe> {
pub const IDENTITY: Self = Self {
x: Fe::ZERO,
y: Fe::ONE,
z: Fe::ZERO,
};
}