1 // Copyright 2015 The Rust Project Developers. See the COPYRIGHT
2 // file at the top-level directory of this distribution and at
3 // http://rust-lang.org/COPYRIGHT.
5 // Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or
6 // http://www.apache.org/licenses/LICENSE-2.0> or the MIT license
7 // <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your
8 // option. This file may not be copied, modified, or distributed
9 // except according to those terms.
13 AddAssign, BitAndAssign, BitOrAssign, BitXorAssign, DivAssign, MulAssign, RemAssign,
14 ShlAssign, ShrAssign, SubAssign,
17 #[derive(Debug, PartialEq)]
23 fn new(slice: &mut [i32]) -> &mut Slice {
38 assert_eq!(x, Int(0b11));
41 assert_eq!(x, Int(0b01));
44 assert_eq!(x, Int(0b11));
47 assert_eq!(x, Int(0b10));
50 assert_eq!(x, Int(1));
53 assert_eq!(x, Int(3));
56 assert_eq!(x, Int(1));
60 assert_eq!(x, Int(2));
63 assert_eq!(x, Int(4));
66 assert_eq!(x, Int(2));
69 assert_eq!(x, Int(1));
72 assert_eq!(x, Int(0));
75 // FIXME(mir-drop): use the vec![..] macro
76 let mut v = Vec::new();
80 assert_eq!(v[0], Int(3));
83 let mut array = [0, 1, 2];
84 *Slice::new(&mut array) += 1;
85 assert_eq!(array[0], 1);
86 assert_eq!(array[1], 2);
87 assert_eq!(array[2], 3);
91 impl AddAssign for Int {
92 fn add_assign(&mut self, rhs: Int) {
97 impl BitAndAssign for Int {
98 fn bitand_assign(&mut self, rhs: Int) {
103 impl BitOrAssign for Int {
104 fn bitor_assign(&mut self, rhs: Int) {
109 impl BitXorAssign for Int {
110 fn bitxor_assign(&mut self, rhs: Int) {
115 impl DivAssign for Int {
116 fn div_assign(&mut self, rhs: Int) {
121 impl MulAssign for Int {
122 fn mul_assign(&mut self, rhs: Int) {
127 impl RemAssign for Int {
128 fn rem_assign(&mut self, rhs: Int) {
133 impl ShlAssign<u8> for Int {
134 fn shl_assign(&mut self, rhs: u8) {
139 impl ShlAssign<u16> for Int {
140 fn shl_assign(&mut self, rhs: u16) {
145 impl ShrAssign<u8> for Int {
146 fn shr_assign(&mut self, rhs: u8) {
151 impl ShrAssign<u16> for Int {
152 fn shr_assign(&mut self, rhs: u16) {
157 impl SubAssign for Int {
158 fn sub_assign(&mut self, rhs: Int) {
163 impl AddAssign<i32> for Slice {
164 fn add_assign(&mut self, rhs: i32) {
165 for lhs in &mut self.0 {