// Copyright 2012 The Rust Project Developers. See the COPYRIGHT // file at the top-level directory of this distribution and at // http://rust-lang.org/COPYRIGHT. // // Licensed under the Apache License, Version 2.0 or the MIT license // , at your // option. This file may not be copied, modified, or distributed // except according to those terms. // Core operators #[lang="drop"] pub trait Drop { fn finalize(&self); // FIXME(#4332): Rename to "drop"? --pcwalton } #[lang="add"] pub trait Add { pure fn add(&self, rhs: &RHS) -> Result; } #[lang="sub"] pub trait Sub { pure fn sub(&self, rhs: &RHS) -> Result; } #[lang="mul"] pub trait Mul { pure fn mul(&self, rhs: &RHS) -> Result; } #[lang="div"] pub trait Div { pure fn div(&self, rhs: &RHS) -> Result; } #[lang="modulo"] pub trait Modulo { pure fn modulo(&self, rhs: &RHS) -> Result; } #[lang="neg"] pub trait Neg { pure fn neg(&self) -> Result; } #[lang="not"] pub trait Not { pure fn not(&self) -> Result; } #[lang="bitand"] pub trait BitAnd { pure fn bitand(&self, rhs: &RHS) -> Result; } #[lang="bitor"] pub trait BitOr { pure fn bitor(&self, rhs: &RHS) -> Result; } #[lang="bitxor"] pub trait BitXor { pure fn bitxor(&self, rhs: &RHS) -> Result; } #[lang="shl"] pub trait Shl { pure fn shl(&self, rhs: &RHS) -> Result; } #[lang="shr"] pub trait Shr { pure fn shr(&self, rhs: &RHS) -> Result; } #[lang="index"] pub trait Index { pure fn index(&self, index: Index) -> Result; }