1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104
/// ```
/// use soa_rs::{Soa, Soars, soa, Slice};
/// #[derive(Soars, PartialEq, Debug)]
/// #[soa_derive(Debug, PartialEq)]
/// struct Foo(usize);
/// let mut soa = soa![Foo(10), Foo(20)];
/// let slice: &Slice<_> = soa.as_ref();
/// let slice_mut: &mut Slice<_> = soa.as_mut();
/// ```
mod simultaneous_mutable_and_immutable {
/// ```compile_fail
/// use soa_rs::{Soa, Soars, soa, Slice};
/// #[derive(Soars, PartialEq, Debug)]
/// #[soa_derive(Debug, PartialEq)]
/// struct Foo(usize);
/// let mut soa = soa![Foo(10), Foo(20)];
/// let slice: &Slice<_> = soa.as_ref();
/// let slice_mut: &mut Slice<_> = soa.as_mut();
/// println!("{:?}", slice); // Added
/// ```
mod fail {}
}
/// ```
/// use soa_rs::{Soa, Soars, soa, Slice};
/// #[derive(Soars, PartialEq, Debug)]
/// #[soa_derive(Debug, PartialEq)]
/// struct Foo(usize);
/// let mut soa = soa![Foo(10), Foo(20)];
/// let slice: &Slice<_> = soa.as_ref();
/// let slice_mut: &mut Slice<_> = soa.as_mut();
/// slice_mut.f0_mut()[0] = 30;
/// ```
mod multiple_mutable_borrows {
/// ```compile_fail
/// use soa_rs::{Soa, Soars, soa, Slice};
/// #[derive(Soars, PartialEq, Debug)]
/// #[soa_derive(Debug, PartialEq)]
/// struct Foo(usize);
/// let mut soa = soa![Foo(10), Foo(20)];
/// let slice: &Slice<_> = soa.as_ref();
/// let slice_mut: &mut Slice<_> = soa.as_mut();
/// slice_mut.f0_mut()[0] = 30;
/// slice_mut_2.f0_mut()[0] = 40; // Added
/// ```
mod fail {}
}
/// Regression test for <https://github.com/tim-harding/soa_rs/issues/2>
///
/// ```
/// use soa_rs::{Soa, Soars};
///
/// #[derive(Soars)]
/// #[soa_derive(Debug, PartialEq)]
/// struct Foo(u8);
///
/// let mut x = Soa::<Foo>::new();
/// x.push(Foo(0));
/// let mut y = Soa::<Foo>::new();
/// ```
mod swap_slices_by_mut_ref {
/// ```compile_fail
/// use soa_rs::{Soa, Soars};
///
/// #[derive(Soars)]
/// #[soa_derive(Debug, PartialEq)]
/// struct Foo(u8);
///
/// let mut x = Soa::<Foo>::new();
/// x.push(Foo(0));
/// let mut y = Soa::<Foo>::new();
/// std::mem::swap(x.deref_mut(), y.deref_mut());
/// ```
mod deref_mut {}
/// ```compile_fail
/// use soa_rs::{Soa, Soars};
///
/// #[derive(Soars)]
/// #[soa_derive(Debug, PartialEq)]
/// struct Foo(u8);
///
/// let mut x = Soa::<Foo>::new();
/// x.push(Foo(0));
/// let mut y = Soa::<Foo>::new();
/// std::mem::swap(x.as_mut(), y.as_mut()); // Changed
/// ```
mod as_mut {}
/// ```compile_fail
/// use soa_rs::{Soa, Soars};
///
/// #[derive(Soars)]
/// #[soa_derive(Debug, PartialEq)]
/// struct Foo(u8);
///
/// let mut x = Soa::<Foo>::new();
/// x.push(Foo(0));
/// let mut y = Soa::<Foo>::new();
/// std::mem::swap(x.as_mut_slice(), y.as_mut_slice()); // Changed
/// ```
mod as_mut_slice {}
}