// Core operators and kinds. #[lang="const"] trait const { // Empty. } #[lang="copy"] trait copy { // Empty. } #[lang="send"] trait send { // Empty. } #[lang="owned"] trait owned { // Empty. } #[lang="add"] trait add { pure fn add(rhs: RHS) -> Result; } #[lang="sub"] trait sub { pure fn sub(rhs: RHS) -> Result; } #[lang="mul"] trait mul { pure fn mul(rhs: RHS) -> Result; } #[lang="div"] trait div { pure fn div(rhs: RHS) -> Result; } #[lang="modulo"] trait modulo { pure fn modulo(rhs: RHS) -> Result; } #[lang="neg"] trait neg { pure fn neg(rhs: RHS) -> Result; } #[lang="bitops"] trait bitops { pure fn and(rhs: RHS) -> Result; pure fn or(rhs: RHS) -> Result; pure fn xor(rhs: RHS) -> Result; pure fn shl(n: BitCount) -> Result; pure fn shr(n: BitCount) -> Result; } #[lang="index"] trait index { pure fn index(index: Index) -> Result; }