std::num::Zero means neither "the number 0"(noun) nor "zero a value"(verb).
std::num::One does not means "the number 1" (or once).
They are both ambiguous and confusing. There are many comments here:
https://mail.mozilla.org/pipermail/rust-dev/2014-April/009432.html
std::num::Zero should be renamed to std::num::AddIdentity,
std::num::One should be renamed to std::num::MulIdentity,
to match their original meanings.
(Or put them in a separate module: std::num::identity::{Zero, One}.)
(Or we remove them entirely from std.)
std::num::Zeromeans neither "the number 0"(noun) nor "zero a value"(verb).std::num::Onedoes not means "the number 1" (or once).They are both ambiguous and confusing. There are many comments here:
https://mail.mozilla.org/pipermail/rust-dev/2014-April/009432.html
std::num::Zeroshould be renamed tostd::num::AddIdentity,std::num::Oneshould be renamed tostd::num::MulIdentity,to match their original meanings.
(Or put them in a separate module:
std::num::identity::{Zero, One}.)(Or we remove them entirely from std.)