Skip to content

Commit 8b390e9

Browse files
authored
feat: Release for bevy 0.17.1 (#80)
* style: format Cargo.toml * chore: use '_ for elided lifetimes * chore: bump criterion version * chore: bump bevy 0.16.0 -> 0.17.1 * chore: fix all the compiler errors * chore: fix all the failing tests (generation now starts at 0 instead of 1) * chore: allow unsafe stuff in debug code * style: cleanup `Cargo.toml`s again --------- Co-authored-by: rob <robert.walter@scontain.com>
1 parent 0a86bab commit 8b390e9

File tree

15 files changed

+143
-135
lines changed

15 files changed

+143
-135
lines changed

Cargo.toml

Lines changed: 16 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,25 +1,26 @@
11
[workspace]
2+
members = ["bevy-trait-query", "bevy-trait-query-impl"]
23
resolver = "3"
3-
members = [
4-
"bevy-trait-query",
5-
"bevy-trait-query-impl"
6-
]
74

85
[workspace.package]
9-
edition = "2024"
6+
categories = ["game-development"]
7+
edition = "2024"
8+
keywords = ["bevy", "gamedev", "plugin", "query", "trait"]
9+
license = "MIT OR Apache-2.0"
10+
repository = "https://github.com/JoJoJet/bevy-trait-query/"
1011

1112
[workspace.dependencies]
12-
tracing = "0.1"
13-
bevy_ecs = "0.16.0"
14-
bevy_app = "0.16.0"
13+
bevy_app = { version = "0.17.1" }
14+
bevy_ecs = { version = "0.17.1" }
15+
tracing = { version = "0.1.41" }
1516

1617
# proc macro
17-
bevy-trait-query-impl = { version = "0.16.0", path = "./bevy-trait-query-impl" }
18-
proc-macro2 = "1"
19-
syn = { version = "2", features = ["full"] }
20-
quote = "1"
21-
proc-macro-crate = "3"
18+
bevy-trait-query-impl = { path = "./bevy-trait-query-impl", version = "0.16.0" }
19+
proc-macro-crate = { version = "3.4.0" }
20+
proc-macro2 = { version = "1.0.101" }
21+
quote = { version = "1.0.41" }
22+
syn = { features = ["full"], version = "2.0.106" }
2223

2324
# dev deps
24-
criterion = "0.5"
25-
bevy = { version = "0.16.0", default-features = false }
25+
bevy = { default-features = false, version = "0.17.1" }
26+
criterion = { version = "0.7.0" }

bevy-trait-query-impl/Cargo.toml

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,18 @@
11
[package]
2-
name = "bevy-trait-query-impl"
3-
version = "0.16.0"
4-
edition.workspace = true
5-
2+
categories = { workspace = true }
63
description = "Procedural macro for `bevy-trait-query`"
7-
repository = "https://github.com/JoJoJet/bevy-trait-query/"
8-
license = "MIT OR Apache-2.0"
9-
keywords = ["bevy", "gamedev", "plugin", "query", "trait"]
10-
categories = ["game-development"]
4+
edition = { workspace = true }
5+
keywords = { workspace = true }
6+
license = { workspace = true }
7+
name = "bevy-trait-query-impl"
8+
repository = { workspace = true }
9+
version = "0.16.0"
1110

1211
[lib]
1312
proc-macro = true
1413

1514
[dependencies]
16-
proc-macro2.workspace = true
17-
syn = { workspace = true, features = ["full"] }
18-
quote.workspace = true
19-
proc-macro-crate.workspace = true
15+
proc-macro-crate = { workspace = true }
16+
proc-macro2 = { workspace = true }
17+
quote = { workspace = true }
18+
syn = { features = ["full"], workspace = true }

bevy-trait-query-impl/src/lib.rs

Lines changed: 18 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -155,22 +155,24 @@ fn impl_trait_query(arg: TokenStream, item: TokenStream) -> Result<TokenStream2>
155155

156156
const IS_READ_ONLY: bool = true;
157157

158-
type Item<'__w> = #my_crate::ReadTraits<'__w, #trait_object>;
158+
type Item<'__w, '__s> = #my_crate::ReadTraits<'__w, #trait_object>;
159159

160160
#[inline]
161-
fn shrink<'wlong: 'wshort, 'wshort>(
162-
item: Self::Item<'wlong>,
163-
) -> Self::Item<'wshort> {
161+
fn shrink<'wlong: 'wshort, 'wshort, 's>(
162+
item: Self::Item<'wlong, 's>,
163+
) -> Self::Item<'wshort, 's> {
164164
item
165165
}
166166

167167
#[inline]
168-
unsafe fn fetch<'w>(
168+
unsafe fn fetch<'w, 's>(
169+
state: &'s Self::State,
169170
fetch: &mut Self::Fetch<'w>,
170171
entity: #imports::Entity,
171172
table_row: #imports::TableRow,
172-
) -> Self::Item<'w> {
173+
) -> Self::Item<'w, 's> {
173174
<#my_crate::All<&#trait_object> as #imports::QueryData>::fetch(
175+
state,
174176
fetch,
175177
entity,
176178
table_row,
@@ -228,7 +230,7 @@ fn impl_trait_query(arg: TokenStream, item: TokenStream) -> Result<TokenStream2>
228230
#[inline]
229231
fn update_component_access(
230232
state: &Self::State,
231-
access: &mut #imports::FilteredAccess<#imports::ComponentId>,
233+
access: &mut #imports::FilteredAccess,
232234
) {
233235
<#my_crate::All<&#trait_object> as #imports::WorldQuery>::update_component_access(
234236
state, access,
@@ -265,24 +267,26 @@ fn impl_trait_query(arg: TokenStream, item: TokenStream) -> Result<TokenStream2>
265267
{
266268
type ReadOnly = &'__a #trait_object;
267269

268-
type Item<'__w> = #my_crate::WriteTraits<'__w, #trait_object>;
270+
type Item<'__w, '__s> = #my_crate::WriteTraits<'__w, #trait_object>;
269271

270272
const IS_READ_ONLY: bool = false;
271273

272274
#[inline]
273-
fn shrink<'wlong: 'wshort, 'wshort>(
274-
item: Self::Item<'wlong>,
275-
) -> Self::Item<'wshort> {
275+
fn shrink<'wlong: 'wshort, 'wshort, 's>(
276+
item: Self::Item<'wlong, 's>,
277+
) -> Self::Item<'wshort, 's> {
276278
item
277279
}
278280

279281
#[inline]
280-
unsafe fn fetch<'w>(
282+
unsafe fn fetch<'w, 's>(
283+
state: &'s Self::State,
281284
fetch: &mut Self::Fetch<'w>,
282285
entity: #imports::Entity,
283286
table_row: #imports::TableRow,
284-
) -> Self::Item<'w> {
287+
) -> Self::Item<'w, 's> {
285288
<#my_crate::All<&mut #trait_object> as #imports::QueryData>::fetch(
289+
state,
286290
fetch,
287291
entity,
288292
table_row,
@@ -337,7 +341,7 @@ fn impl_trait_query(arg: TokenStream, item: TokenStream) -> Result<TokenStream2>
337341
#[inline]
338342
fn update_component_access(
339343
state: &Self::State,
340-
access: &mut #imports::FilteredAccess<#imports::ComponentId>,
344+
access: &mut #imports::FilteredAccess,
341345
) {
342346
<#my_crate::All<&mut #trait_object> as #imports::WorldQuery>::update_component_access(
343347
state, access,

bevy-trait-query/Cargo.toml

Lines changed: 21 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,43 +1,42 @@
11
[package]
2-
name = "bevy-trait-query"
3-
version = "0.16.0"
4-
edition.workspace = true
5-
2+
categories = { workspace = true }
63
description = "Implementation of trait queries for the bevy game engine"
7-
repository = "https://github.com/JoJoJet/bevy-trait-query/"
8-
license = "MIT OR Apache-2.0"
9-
keywords = ["bevy", "gamedev", "plugin", "query", "trait"]
10-
categories = ["game-development"]
4+
edition = { workspace = true }
5+
keywords = { workspace = true }
6+
license = { workspace = true }
7+
name = "bevy-trait-query"
8+
repository = { workspace = true }
9+
version = "0.16.0"
1110

1211
[features]
1312
default = ["bevy_app"]
1413

1514
[dependencies]
16-
bevy-trait-query-impl.workspace = true
17-
tracing.workspace = true
18-
bevy_ecs.workspace = true
19-
bevy_app = { workspace = true, optional = true}
15+
bevy-trait-query-impl = { workspace = true }
16+
bevy_app = { optional = true, workspace = true }
17+
bevy_ecs = { workspace = true }
18+
tracing = { workspace = true }
2019

2120
[dev-dependencies]
22-
criterion.workspace = true
23-
bevy = { workspace = true, default-features = false }
21+
bevy = { default-features = false, workspace = true }
22+
criterion = { workspace = true }
2423

2524
[[bench]]
26-
name = "concrete"
27-
path = "../benches/concrete.rs"
2825
harness = false
26+
name = "concrete"
27+
path = "../benches/concrete.rs"
2928

3029
[[bench]]
31-
name = "all"
32-
path = "../benches/all.rs"
3330
harness = false
31+
name = "all"
32+
path = "../benches/all.rs"
3433

3534
[[bench]]
36-
name = "one"
37-
path = "../benches/one.rs"
3835
harness = false
36+
name = "one"
37+
path = "../benches/one.rs"
3938

4039
[[bench]]
41-
name = "fragmented"
42-
path = "../benches/fragmented.rs"
4340
harness = false
41+
name = "fragmented"
42+
path = "../benches/fragmented.rs"

bevy-trait-query/src/all/core/read.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,7 @@ impl<'w, Trait: ?Sized + TraitQuery> IntoIterator for ReadTraits<'w, Trait> {
145145
let sparse = ReadSparseTraitsIter {
146146
components: self.registry.sparse_components.iter(),
147147
meta: self.registry.sparse_meta.iter(),
148-
entity: self.table.entities()[self.table_row.as_usize()],
148+
entity: self.table.entities()[self.table_row.index()],
149149
sparse_sets: self.sparse_sets,
150150
last_run: self.last_run,
151151
this_run: self.this_run,
@@ -170,7 +170,7 @@ impl<'w, Trait: ?Sized + TraitQuery> IntoIterator for &ReadTraits<'w, Trait> {
170170
let sparse = ReadSparseTraitsIter {
171171
components: self.registry.sparse_components.iter(),
172172
meta: self.registry.sparse_meta.iter(),
173-
entity: self.table.entities()[self.table_row.as_usize()],
173+
entity: self.table.entities()[self.table_row.index()],
174174
sparse_sets: self.sparse_sets,
175175
last_run: self.last_run,
176176
this_run: self.this_run,

bevy-trait-query/src/all/core/write.rs

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ impl<'w, Trait: ?Sized + TraitQuery> IntoIterator for WriteTraits<'w, Trait> {
202202
let sparse = WriteSparseTraitsIter {
203203
components: self.registry.sparse_components.iter(),
204204
meta: self.registry.sparse_meta.iter(),
205-
entity: self.table.entities()[self.table_row.as_usize()],
205+
entity: self.table.entities()[self.table_row.index()],
206206
sparse_sets: self.sparse_sets,
207207
last_run: self.last_run,
208208
this_run: self.this_run,
@@ -227,7 +227,7 @@ impl<'local, Trait: ?Sized + TraitQuery> IntoIterator for &'local WriteTraits<'_
227227
let sparse = ReadSparseTraitsIter {
228228
components: self.registry.sparse_components.iter(),
229229
meta: self.registry.sparse_meta.iter(),
230-
entity: self.table.entities()[self.table_row.as_usize()],
230+
entity: self.table.entities()[self.table_row.index()],
231231
sparse_sets: self.sparse_sets,
232232
last_run: self.last_run,
233233
this_run: self.this_run,
@@ -252,7 +252,7 @@ impl<'local, Trait: ?Sized + TraitQuery> IntoIterator for &'local mut WriteTrait
252252
let sparse = WriteSparseTraitsIter {
253253
components: self.registry.sparse_components.iter(),
254254
meta: self.registry.sparse_meta.iter(),
255-
entity: self.table.entities()[self.table_row.as_usize()],
255+
entity: self.table.entities()[self.table_row.index()],
256256
sparse_sets: self.sparse_sets,
257257
last_run: self.last_run,
258258
this_run: self.this_run,

bevy-trait-query/src/all/impls/all.rs

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -31,19 +31,22 @@ unsafe impl<Trait: ?Sized + TraitQuery> QueryData for All<&Trait> {
3131

3232
const IS_READ_ONLY: bool = true;
3333

34-
type Item<'w> = ReadTraits<'w, Trait>;
34+
type Item<'w, 's> = ReadTraits<'w, Trait>;
3535

3636
#[inline]
37-
fn shrink<'wlong: 'wshort, 'wshort>(item: QueryItem<'wlong, Self>) -> QueryItem<'wshort, Self> {
37+
fn shrink<'wlong: 'wshort, 'wshort, 's>(
38+
item: QueryItem<'wlong, 's, Self>,
39+
) -> QueryItem<'wshort, 's, Self> {
3840
item
3941
}
4042

4143
#[inline]
42-
unsafe fn fetch<'w>(
44+
unsafe fn fetch<'w, 's>(
45+
_state: &'s Self::State,
4346
fetch: &mut Self::Fetch<'w>,
4447
_entity: Entity,
4548
table_row: TableRow,
46-
) -> Self::Item<'w> {
49+
) -> Self::Item<'w, 's> {
4750
let table = fetch
4851
.table
4952
.unwrap_or_else(|| unsafe { debug_unreachable() });
@@ -108,10 +111,7 @@ unsafe impl<Trait: ?Sized + TraitQuery> WorldQuery for All<&Trait> {
108111
}
109112

110113
#[inline]
111-
fn update_component_access(
112-
state: &Self::State,
113-
access: &mut bevy_ecs::query::FilteredAccess<ComponentId>,
114-
) {
114+
fn update_component_access(state: &Self::State, access: &mut bevy_ecs::query::FilteredAccess) {
115115
let mut not_first = false;
116116
let mut new_access = access.clone();
117117
for &component in &*state.components {
@@ -166,19 +166,22 @@ unsafe impl<'a, Trait: ?Sized + TraitQuery> QueryData for All<&'a mut Trait> {
166166

167167
const IS_READ_ONLY: bool = false;
168168

169-
type Item<'w> = WriteTraits<'w, Trait>;
169+
type Item<'w, 's> = WriteTraits<'w, Trait>;
170170

171171
#[inline]
172-
fn shrink<'wlong: 'wshort, 'wshort>(item: QueryItem<'wlong, Self>) -> QueryItem<'wshort, Self> {
172+
fn shrink<'wlong: 'wshort, 'wshort, 's>(
173+
item: QueryItem<'wlong, 's, Self>,
174+
) -> QueryItem<'wshort, 's, Self> {
173175
item
174176
}
175177

176178
#[inline]
177-
unsafe fn fetch<'w>(
179+
unsafe fn fetch<'w, 's>(
180+
_state: &'s Self::State,
178181
fetch: &mut Self::Fetch<'w>,
179182
_entity: Entity,
180183
table_row: TableRow,
181-
) -> Self::Item<'w> {
184+
) -> Self::Item<'w, 's> {
182185
let table = fetch
183186
.table
184187
.unwrap_or_else(|| unsafe { debug_unreachable() });
@@ -243,10 +246,7 @@ unsafe impl<Trait: ?Sized + TraitQuery> WorldQuery for All<&mut Trait> {
243246
}
244247

245248
#[inline]
246-
fn update_component_access(
247-
state: &Self::State,
248-
access: &mut bevy_ecs::query::FilteredAccess<ComponentId>,
249-
) {
249+
fn update_component_access(state: &Self::State, access: &mut bevy_ecs::query::FilteredAccess) {
250250
let mut not_first = false;
251251
let mut new_access = access.clone();
252252
for &component in &*state.components {

bevy-trait-query/src/internal/dyn_constructor.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -15,11 +15,11 @@ impl<T: ?Sized> Clone for DynCtor<T> {
1515

1616
impl<Trait: ?Sized> DynCtor<Trait> {
1717
#[inline]
18-
pub(crate) unsafe fn cast(self, ptr: Ptr) -> &Trait {
18+
pub(crate) unsafe fn cast(self, ptr: Ptr<'_>) -> &'_ Trait {
1919
unsafe { &*(self.cast)(ptr.as_ptr()) }
2020
}
2121
#[inline]
22-
pub(crate) unsafe fn cast_mut(self, ptr: PtrMut) -> &mut Trait {
22+
pub(crate) unsafe fn cast_mut(self, ptr: PtrMut<'_>) -> &'_ mut Trait {
2323
unsafe { &mut *(self.cast)(ptr.as_ptr()) }
2424
}
2525
}

bevy-trait-query/src/lib.rs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -275,7 +275,7 @@ pub use bevy_trait_query_impl::queryable;
275275
#[doc(hidden)]
276276
pub mod imports {
277277
pub use bevy_ecs::{
278-
archetype::{Archetype, ArchetypeComponentId},
278+
archetype::Archetype,
279279
component::Tick,
280280
component::{Component, ComponentId, Components},
281281
entity::Entity,
@@ -295,6 +295,7 @@ unsafe fn debug_unreachable() -> ! {
295295
unreachable!();
296296

297297
#[cfg(not(debug_assertions))]
298+
#[allow(unsafe_op_in_unsafe_fn)]
298299
std::hint::unreachable_unchecked();
299300
}
300301

0 commit comments

Comments
 (0)