4 AddAssign, BitAndAssign, BitOrAssign, BitXorAssign, DivAssign, MulAssign, RemAssign,
5 ShlAssign, ShrAssign, SubAssign,
8 #[derive(Debug, PartialEq)]
14 fn new(slice: &mut [i32]) -> &mut Slice {
29 assert_eq!(x, Int(0b11));
32 assert_eq!(x, Int(0b01));
35 assert_eq!(x, Int(0b11));
38 assert_eq!(x, Int(0b10));
41 assert_eq!(x, Int(1));
44 assert_eq!(x, Int(3));
47 assert_eq!(x, Int(1));
51 assert_eq!(x, Int(2));
54 assert_eq!(x, Int(4));
57 assert_eq!(x, Int(2));
60 assert_eq!(x, Int(1));
63 assert_eq!(x, Int(0));
66 // FIXME(mir-drop): use the vec![..] macro
67 let mut v = Vec::new();
71 assert_eq!(v[0], Int(3));
74 let mut array = [0, 1, 2];
75 *Slice::new(&mut array) += 1;
76 assert_eq!(array[0], 1);
77 assert_eq!(array[1], 2);
78 assert_eq!(array[2], 3);
82 impl AddAssign for Int {
83 fn add_assign(&mut self, rhs: Int) {
88 impl BitAndAssign for Int {
89 fn bitand_assign(&mut self, rhs: Int) {
94 impl BitOrAssign for Int {
95 fn bitor_assign(&mut self, rhs: Int) {
100 impl BitXorAssign for Int {
101 fn bitxor_assign(&mut self, rhs: Int) {
106 impl DivAssign for Int {
107 fn div_assign(&mut self, rhs: Int) {
112 impl MulAssign for Int {
113 fn mul_assign(&mut self, rhs: Int) {
118 impl RemAssign for Int {
119 fn rem_assign(&mut self, rhs: Int) {
124 impl ShlAssign<u8> for Int {
125 fn shl_assign(&mut self, rhs: u8) {
130 impl ShlAssign<u16> for Int {
131 fn shl_assign(&mut self, rhs: u16) {
136 impl ShrAssign<u8> for Int {
137 fn shr_assign(&mut self, rhs: u8) {
142 impl ShrAssign<u16> for Int {
143 fn shr_assign(&mut self, rhs: u16) {
148 impl SubAssign for Int {
149 fn sub_assign(&mut self, rhs: Int) {
154 impl AddAssign<i32> for Slice {
155 fn add_assign(&mut self, rhs: i32) {
156 for lhs in &mut self.0 {