// 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. //! Traits for the built-in operators #[lang="drop"] pub trait Drop { fn finalize(&self); // FIXME(#4332): Rename to "drop"? --pcwalton } #[lang="add"] pub trait Add { fn add(&self, rhs: &RHS) -> Result; } #[lang="sub"] pub trait Sub { fn sub(&self, rhs: &RHS) -> Result; } #[lang="mul"] pub trait Mul { fn mul(&self, rhs: &RHS) -> Result; } #[lang="quot"] pub trait Quot { fn quot(&self, rhs: &RHS) -> Result; } #[lang="rem"] pub trait Rem { fn rem(&self, rhs: &RHS) -> Result; } #[lang="neg"] pub trait Neg { fn neg(&self) -> Result; } #[lang="not"] pub trait Not { fn not(&self) -> Result; } #[lang="bitand"] pub trait BitAnd { fn bitand(&self, rhs: &RHS) -> Result; } #[lang="bitor"] pub trait BitOr { fn bitor(&self, rhs: &RHS) -> Result; } #[lang="bitxor"] pub trait BitXor { fn bitxor(&self, rhs: &RHS) -> Result; } #[lang="shl"] pub trait Shl { fn shl(&self, rhs: &RHS) -> Result; } #[lang="shr"] pub trait Shr { fn shr(&self, rhs: &RHS) -> Result; } #[lang="index"] pub trait Index { fn index(&self, index: &Index) -> Result; }