diff --git a/src/libcore/ops.rs b/src/libcore/ops.rs new file mode 100644 index 000000000000..61efe704974a --- /dev/null +++ b/src/libcore/ops.rs @@ -0,0 +1,66 @@ +// 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; +} +