15
15
*
16
16
*/
17
17
18
- use std:: {
19
- any:: TypeId ,
20
- borrow:: Cow ,
21
- collections:: HashMap ,
22
- } ;
18
+ use std:: { any:: TypeId , borrow:: Cow , collections:: HashMap } ;
23
19
24
20
use thiserror:: Error as ThisError ;
25
21
@@ -28,9 +24,9 @@ use smallvec::SmallVec;
28
24
use bevy_ecs:: prelude:: { Entity , World } ;
29
25
30
26
use crate :: {
31
- AnyBuffer , AddOperation , Chain , OperationError , OperationResult , OperationRoster , Buffered , Gate ,
32
- Join , Joined , Accessed , BufferKeyBuilder , AnyBufferKey , Builder , Output , UnusedTarget , GateState ,
33
- add_listener_to_source ,
27
+ add_listener_to_source , Accessed , AddOperation , AnyBuffer , AnyBufferKey , BufferKeyBuilder ,
28
+ Buffered , Builder , Chain , Gate , GateState , Join , Joined , OperationError , OperationResult ,
29
+ OperationRoster , Output , UnusedTarget ,
34
30
} ;
35
31
36
32
#[ derive( Clone , Default ) ]
@@ -40,11 +36,7 @@ pub struct BufferMap {
40
36
41
37
impl BufferMap {
42
38
/// Insert a named buffer into the map.
43
- pub fn insert (
44
- & mut self ,
45
- name : Cow < ' static , str > ,
46
- buffer : impl Into < AnyBuffer > ,
47
- ) {
39
+ pub fn insert ( & mut self , name : Cow < ' static , str > , buffer : impl Into < AnyBuffer > ) {
48
40
self . inner . insert ( name, buffer. into ( ) ) ;
49
41
}
50
42
@@ -67,11 +59,7 @@ pub struct IncompatibleLayout {
67
59
68
60
impl IncompatibleLayout {
69
61
/// Check whether a named buffer is compatible with a specific type.
70
- pub fn require_buffer < T : ' static > (
71
- & mut self ,
72
- expected_name : & str ,
73
- buffers : & BufferMap ,
74
- ) {
62
+ pub fn require_buffer < T : ' static > ( & mut self , expected_name : & str , buffers : & BufferMap ) {
75
63
if let Some ( ( name, buffer) ) = buffers. inner . get_key_value ( expected_name) {
76
64
if buffer. message_type_id ( ) != TypeId :: of :: < T > ( ) {
77
65
self . incompatible_buffers . push ( BufferIncompatibility {
@@ -81,7 +69,8 @@ impl IncompatibleLayout {
81
69
} ) ;
82
70
}
83
71
} else {
84
- self . missing_buffers . push ( Cow :: Owned ( expected_name. to_owned ( ) ) ) ;
72
+ self . missing_buffers
73
+ . push ( Cow :: Owned ( expected_name. to_owned ( ) ) ) ;
85
74
}
86
75
}
87
76
@@ -124,11 +113,7 @@ pub trait BufferMapLayout: Sized {
124
113
world : & mut World ,
125
114
) -> OperationResult ;
126
115
127
- fn add_listener (
128
- buffers : & BufferMap ,
129
- listener : Entity ,
130
- world : & mut World ,
131
- ) -> OperationResult {
116
+ fn add_listener ( buffers : & BufferMap , listener : Entity , world : & mut World ) -> OperationResult {
132
117
for buffer in buffers. inner . values ( ) {
133
118
add_listener_to_source ( buffer. id ( ) , listener, world) ?;
134
119
}
@@ -157,7 +142,7 @@ pub trait BufferMapLayout: Sized {
157
142
}
158
143
}
159
144
160
- pub trait JoinedValue : ' static + BufferMapLayout + Send + Sync {
145
+ pub trait JoinedValue : ' static + BufferMapLayout + Send + Sync {
161
146
/// This associated type must represent a buffer map layout that is
162
147
/// guaranteed to be compatible for this JoinedValue. Failure to implement
163
148
/// this trait accordingly will result in panics.
@@ -198,11 +183,7 @@ pub trait JoinedValue: 'static + BufferMapLayout + Send + Sync{
198
183
199
184
/// Trait to describe a layout of buffer keys
200
185
pub trait BufferKeyMap : BufferMapLayout + Clone {
201
- fn add_accessor (
202
- buffers : & BufferMap ,
203
- accessor : Entity ,
204
- world : & mut World ,
205
- ) -> OperationResult ;
186
+ fn add_accessor ( buffers : & BufferMap , accessor : Entity , world : & mut World ) -> OperationResult ;
206
187
207
188
fn create_key ( buffers : & BufferMap , builder : & BufferKeyBuilder ) -> Self ;
208
189
@@ -219,13 +200,19 @@ struct BufferedMap<K> {
219
200
impl < K : BufferMapLayout > BufferedMap < K > {
220
201
fn new ( map : BufferMap ) -> Result < Self , IncompatibleLayout > {
221
202
K :: is_compatible ( & map) ?;
222
- Ok ( Self { map, _ignore : Default :: default ( ) } )
203
+ Ok ( Self {
204
+ map,
205
+ _ignore : Default :: default ( ) ,
206
+ } )
223
207
}
224
208
}
225
209
226
210
impl < K > Clone for BufferedMap < K > {
227
211
fn clone ( & self ) -> Self {
228
- Self { map : self . map . clone ( ) , _ignore : Default :: default ( ) }
212
+ Self {
213
+ map : self . map . clone ( ) ,
214
+ _ignore : Default :: default ( ) ,
215
+ }
229
216
}
230
217
}
231
218
@@ -322,11 +309,7 @@ impl BufferMapLayout for AnyBufferKeyMap {
322
309
Ok ( min_count. unwrap_or ( 0 ) )
323
310
}
324
311
325
- fn add_listener (
326
- buffers : & BufferMap ,
327
- listener : Entity ,
328
- world : & mut World ,
329
- ) -> OperationResult {
312
+ fn add_listener ( buffers : & BufferMap , listener : Entity , world : & mut World ) -> OperationResult {
330
313
for buffer in buffers. inner . values ( ) {
331
314
buffer. add_listener ( listener, world) ?;
332
315
}
@@ -377,9 +360,8 @@ mod tests {
377
360
use std:: borrow:: Cow ;
378
361
379
362
use crate :: {
380
- prelude:: * ,
381
- testing:: * ,
382
- OperationResult , OperationError , OrBroken , InspectBuffer , ManageBuffer , BufferMap ,
363
+ prelude:: * , testing:: * , BufferMap , InspectBuffer , ManageBuffer , OperationError ,
364
+ OperationResult , OrBroken ,
383
365
} ;
384
366
385
367
use bevy_ecs:: prelude:: World ;
@@ -420,17 +402,11 @@ mod tests {
420
402
. or_broken ( ) ?
421
403
. buffered_count :: < String > ( session) ?;
422
404
423
- Ok (
424
- [
425
- integer_count,
426
- float_count,
427
- string_count,
428
- ]
405
+ Ok ( [ integer_count, float_count, string_count]
429
406
. iter ( )
430
407
. min ( )
431
408
. copied ( )
432
- . unwrap_or ( 0 )
433
- )
409
+ . unwrap_or ( 0 ) )
434
410
}
435
411
436
412
fn ensure_active_session (
@@ -480,7 +456,11 @@ mod tests {
480
456
. or_broken ( ) ?
481
457
. pull_from_buffer :: < String > ( session) ?;
482
458
483
- Ok ( Self { integer, float, string } )
459
+ Ok ( Self {
460
+ integer,
461
+ float,
462
+ string,
463
+ } )
484
464
}
485
465
}
486
466
@@ -514,25 +494,23 @@ mod tests {
514
494
buffers. insert ( Cow :: Borrowed ( "float" ) , buffer_f64) ;
515
495
buffers. insert ( Cow :: Borrowed ( "string" ) , buffer_string) ;
516
496
517
- scope
518
- . input
519
- . chain ( builder)
520
- . fork_unzip ( (
521
- |chain : Chain < _ > | chain. connect ( buffer_i64. input_slot ( ) ) ,
522
- |chain : Chain < _ > | chain. connect ( buffer_f64. input_slot ( ) ) ,
523
- |chain : Chain < _ > | chain. connect ( buffer_string. input_slot ( ) ) ,
524
- ) ) ;
497
+ scope. input . chain ( builder) . fork_unzip ( (
498
+ |chain : Chain < _ > | chain. connect ( buffer_i64. input_slot ( ) ) ,
499
+ |chain : Chain < _ > | chain. connect ( buffer_f64. input_slot ( ) ) ,
500
+ |chain : Chain < _ > | chain. connect ( buffer_string. input_slot ( ) ) ,
501
+ ) ) ;
525
502
526
- builder. try_join_into ( buffers) . unwrap ( ) . connect ( scope. terminate ) ;
503
+ builder
504
+ . try_join_into ( buffers)
505
+ . unwrap ( )
506
+ . connect ( scope. terminate ) ;
527
507
} ) ;
528
508
529
- let mut promise = context. command (
530
- |commands| commands. request (
531
- ( 5_i64 , 3.14_f64 , "hello" . to_string ( ) ) ,
532
- workflow,
533
- )
534
- . take_response ( )
535
- ) ;
509
+ let mut promise = context. command ( |commands| {
510
+ commands
511
+ . request ( ( 5_i64 , 3.14_f64 , "hello" . to_string ( ) ) , workflow)
512
+ . take_response ( )
513
+ } ) ;
536
514
537
515
context. run_with_conditions ( & mut promise, Duration :: from_secs ( 2 ) ) ;
538
516
let value: TestJoinedValue = promise. take ( ) . available ( ) . unwrap ( ) ;
0 commit comments