Skip to content

Commit 096ecec

Browse files
committed
heavy WIP ; rust error E0210 difficult to analyze
1 parent 557d556 commit 096ecec

File tree

15 files changed

+59
-85
lines changed

15 files changed

+59
-85
lines changed

src/base/array_storage.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,9 @@ use std::mem;
3030
#[cfg_attr(
3131
feature = "rkyv-serialize-no-std",
3232
derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize),
33-
rkyv(
34-
as = ArrayStorage<T::Archived, R, C>,
33+
rkyv(compare(PartialEq),
3534
archive_bounds(
3635
T: rkyv::Archive,
37-
[[T; R]; C]: rkyv::Archive<Archived = [[T::Archived; R]; C]>
3836
)
3937
)
4038
)]

src/base/matrix.rs

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -159,11 +159,15 @@ pub type MatrixCross<T, R1, C1, R2, C2> =
159159
#[cfg_attr(
160160
feature = "rkyv-serialize-no-std",
161161
derive(Archive, rkyv::Serialize, rkyv::Deserialize),
162-
rkyv(as = Matrix<T::Archived, R, C, S::Archived>,
162+
rkyv(
163+
compare(PartialEq, PartialOrd),
164+
derive(Debug),
163165
archive_bounds(
164-
T: Archive,
166+
<S as Archive>::Archived: core::fmt::Debug,
167+
<PhantomData<(T, R, C)> as Archive>::Archived: core::fmt::Debug,
168+
T: PartialEq,
165169
S: Archive,
166-
With<PhantomData<(T, R, C)>, CustomPhantom<(Archived<T>, R, C)>>: Archive<Archived = PhantomData<(Archived<T>, R, C)>>
170+
S: core::fmt::Debug,
167171
)
168172
)
169173
)]
@@ -203,7 +207,6 @@ pub struct Matrix<T, R, C, S> {
203207
// of the `RawStorage` trait. However, because we don't have
204208
// specialization, this is not possible because these `T, R, C`
205209
// allows us to desambiguate a lot of configurations.
206-
#[cfg_attr(feature = "rkyv-serialize-no-std", rkyv(with = CustomPhantom<(T::Archived, R, C)>))]
207210
_phantoms: PhantomData<(T, R, C)>,
208211
}
209212

src/base/unit.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,11 +24,10 @@ use crate::{Dim, Matrix, OMatrix, RealField, Scalar, SimdComplexField, SimdRealF
2424
#[cfg_attr(
2525
feature = "rkyv-serialize-no-std",
2626
derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize),
27-
rkyv(as = Unit<T::Archived>,
28-
archive_bounds(
29-
T: rkyv::Archive,
30-
)
31-
)
27+
rkyv(
28+
// This will generate a PartialEq impl between our unarchived
29+
// and archived types
30+
compare(PartialEq),)
3231
)]
3332
pub struct Unit<T> {
3433
pub(crate) value: T,

src/geometry/dual_quaternion.rs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -45,13 +45,7 @@ use simba::scalar::{ClosedNeg, RealField};
4545
#[derive(Debug, Copy, Clone)]
4646
#[cfg_attr(
4747
feature = "rkyv-serialize-no-std",
48-
derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize),
49-
rkyv(as = DualQuaternion<T::Archived>,
50-
archive_bounds(
51-
T: rkyv::Archive,
52-
Quaternion<T>: rkyv::Archive<Archived = Quaternion<T::Archived>>
53-
)
54-
)
48+
derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize)
5549
)]
5650
pub struct DualQuaternion<T> {
5751
/// The real component of the quaternion

src/geometry/isometry.rs

Lines changed: 3 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -74,13 +74,9 @@ use rkyv::bytecheck;
7474
#[cfg_attr(
7575
feature = "rkyv-serialize-no-std",
7676
derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize),
77-
rkyv(as = Isometry<T::Archived, R::Archived, D>,
78-
archive_bounds(
79-
T: rkyv::Archive,
80-
R: rkyv::Archive,
81-
Translation<T, D>: rkyv::Archive<Archived = Translation<T::Archived, D>>
82-
)
83-
)
77+
// This will generate a PartialEq impl between our unarchived
78+
// and archived types
79+
rkyv(compare(PartialEq),)
8480
)]
8581
pub struct Isometry<T, R, const D: usize> {
8682
/// The pure rotational part of this isometry.

src/geometry/orthographic.rs

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -25,11 +25,10 @@ use rkyv::bytecheck;
2525
#[cfg_attr(
2626
feature = "rkyv-serialize-no-std",
2727
derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize),
28-
rkyv(as = Orthographic3<T::Archived>,
29-
archive_bounds(
30-
T: rkyv::Archive,
31-
Matrix4<T>: rkyv::Archive<Archived = Matrix4<T::Archived>>
32-
)
28+
rkyv(
29+
// This will generate a PartialEq impl between our unarchived
30+
// and archived types
31+
compare(PartialEq),
3332
)
3433
)]
3534
#[derive(Copy, Clone)]

src/geometry/perspective.rs

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -25,13 +25,7 @@ use rkyv::{bytecheck, rancor};
2525
#[repr(C)]
2626
#[cfg_attr(
2727
feature = "rkyv-serialize-no-std",
28-
derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize),
29-
rkyv(as = Perspective3<T::Archived>,
30-
archive_bounds(
31-
T: rkyv::Archive,
32-
Matrix4<T>: rkyv::Archive<Archived = Matrix4<T::Archived>>
33-
)
34-
)
28+
derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize)
3529
)]
3630
#[derive(Copy, Clone)]
3731
pub struct Perspective3<T> {

src/geometry/point.rs

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -42,12 +42,11 @@ use std::mem::MaybeUninit;
4242
#[cfg_attr(
4343
feature = "rkyv-serialize-no-std",
4444
derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize),
45-
rkyv(as = OPoint<T::Archived, D>,
46-
archive_bounds(T: rkyv::Archive,
47-
T::Archived: Scalar,
48-
OVector<T, D>: rkyv::Archive<Archived = OVector<T::Archived, D>>,
49-
DefaultAllocator: Allocator<D>,
50-
)
45+
46+
rkyv(
47+
// This will generate a PartialEq impl between our unarchived
48+
// and archived types
49+
compare(PartialEq),
5150
)
5251
)]
5352
pub struct OPoint<T: Scalar, D: DimName>

src/geometry/quaternion.rs

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -29,11 +29,11 @@ use rkyv::bytecheck;
2929
#[cfg_attr(
3030
feature = "rkyv-serialize-no-std",
3131
derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize),
32-
rkyv(as = Quaternion<T::Archived>,
33-
archive_bounds(
34-
T: rkyv::Archive,
35-
Vector4<T>: rkyv::Archive<Archived = Vector4<T::Archived>>
36-
)
32+
33+
rkyv(
34+
// This will generate a PartialEq impl between our unarchived
35+
// and archived types
36+
compare(PartialEq),
3737
)
3838
)]
3939
pub struct Quaternion<T> {

src/geometry/rotation.rs

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -55,12 +55,14 @@ use rkyv::bytecheck;
5555
#[cfg_attr(
5656
feature = "rkyv-serialize-no-std",
5757
derive(rkyv::Archive, rkyv::Serialize, rkyv::Deserialize),
58-
rkyv(as = Rotation<T::Archived, D>,
59-
archive_bounds(
60-
T: rkyv::Archive,
61-
SMatrix<T, D, D>: rkyv::Archive<Archived = SMatrix<T::Archived, D, D>>
62-
)
63-
)
58+
// This will generate a PartialEq impl between our unarchived
59+
// and archived types
60+
//rkyv(archive_bounds(
61+
//T: rkyv::Archive,
62+
//<T as rkyv::Archive>::Archived: core::fmt::Debug,
63+
//),
64+
// compare(PartialEq)
65+
//)
6466
)]
6567
#[derive(Copy, Clone)]
6668
pub struct Rotation<T, const D: usize> {

0 commit comments

Comments
 (0)