@@ -64,6 +64,10 @@ impl AnyBuffer {
64
64
self . interface . message_type_id ( )
65
65
}
66
66
67
+ pub fn message_type_name ( & self ) -> & ' static str {
68
+ self . interface . message_type_name ( )
69
+ }
70
+
67
71
/// Get the [`AnyBufferAccessInterface`] for this specific instance of [`AnyBuffer`].
68
72
pub fn get_interface ( & self ) -> & ' static ( dyn AnyBufferAccessInterface + Send + Sync ) {
69
73
self . interface
@@ -176,11 +180,11 @@ impl AnyBufferKey {
176
180
self . tag . session
177
181
}
178
182
179
- fn is_in_use ( & self ) -> bool {
183
+ pub ( crate ) fn is_in_use ( & self ) -> bool {
180
184
self . tag . is_in_use ( )
181
185
}
182
186
183
- fn deep_clone ( & self ) -> Self {
187
+ pub ( crate ) fn deep_clone ( & self ) -> Self {
184
188
Self {
185
189
tag : self . tag . deep_clone ( ) ,
186
190
interface : self . interface ,
@@ -338,14 +342,14 @@ impl<'w, 's, 'a> AnyBufferMut<'w, 's, 'a> {
338
342
}
339
343
340
344
/// Pull the oldest message from the buffer.
341
- pub fn pull ( & mut self ) -> Option < AnyMessage > {
345
+ pub fn pull ( & mut self ) -> Option < AnyMessageBox > {
342
346
self . modified = true ;
343
347
self . storage . any_pull ( self . session )
344
348
}
345
349
346
350
/// Pull the message that was most recently put into the buffer (instead of the
347
351
/// oldest, which is what [`Self::pull`] gives).
348
- pub fn pull_newest ( & mut self ) -> Option < AnyMessage > {
352
+ pub fn pull_newest ( & mut self ) -> Option < AnyMessageBox > {
349
353
self . modified = true ;
350
354
self . storage . any_pull_newest ( self . session )
351
355
}
@@ -385,7 +389,7 @@ impl<'w, 's, 'a> AnyBufferMut<'w, 's, 'a> {
385
389
/// If the input value does not match the message type of the buffer, this
386
390
/// will return [`Err`] and give back an error with the message that you
387
391
/// tried to push and the type information for the expected message type.
388
- pub fn push_any ( & mut self , value : AnyMessage ) -> Result < Option < AnyMessage > , AnyMessageError > {
392
+ pub fn push_any ( & mut self , value : AnyMessageBox ) -> Result < Option < AnyMessageBox > , AnyMessageError > {
389
393
self . storage . any_push ( self . session , value)
390
394
}
391
395
@@ -420,8 +424,8 @@ impl<'w, 's, 'a> AnyBufferMut<'w, 's, 'a> {
420
424
/// The result follows the same rules as [`Self::push_any`].
421
425
pub fn push_any_as_oldest (
422
426
& mut self ,
423
- value : AnyMessage ,
424
- ) -> Result < Option < AnyMessage > , AnyMessageError > {
427
+ value : AnyMessageBox ,
428
+ ) -> Result < Option < AnyMessageBox > , AnyMessageError > {
425
429
self . storage . any_push_as_oldest ( self . session , value)
426
430
}
427
431
@@ -520,10 +524,10 @@ trait AnyBufferViewing {
520
524
}
521
525
522
526
trait AnyBufferManagement : AnyBufferViewing {
523
- fn any_push ( & mut self , session : Entity , value : AnyMessage ) -> AnyMessagePushResult ;
524
- fn any_push_as_oldest ( & mut self , session : Entity , value : AnyMessage ) -> AnyMessagePushResult ;
525
- fn any_pull ( & mut self , session : Entity ) -> Option < AnyMessage > ;
526
- fn any_pull_newest ( & mut self , session : Entity ) -> Option < AnyMessage > ;
527
+ fn any_push ( & mut self , session : Entity , value : AnyMessageBox ) -> AnyMessagePushResult ;
528
+ fn any_push_as_oldest ( & mut self , session : Entity , value : AnyMessageBox ) -> AnyMessagePushResult ;
529
+ fn any_pull ( & mut self , session : Entity ) -> Option < AnyMessageBox > ;
530
+ fn any_pull_newest ( & mut self , session : Entity ) -> Option < AnyMessageBox > ;
527
531
fn any_oldest_mut < ' a > ( & ' a mut self , session : Entity ) -> Option < AnyMessageMut < ' a > > ;
528
532
fn any_newest_mut < ' a > ( & ' a mut self , session : Entity ) -> Option < AnyMessageMut < ' a > > ;
529
533
fn any_get_mut < ' a > ( & ' a mut self , session : Entity , index : usize ) -> Option < AnyMessageMut < ' a > > ;
@@ -650,37 +654,37 @@ impl<T: 'static + Send + Sync + Any> AnyBufferViewing for Mut<'_, BufferStorage<
650
654
651
655
pub type AnyMessageMut < ' a > = & ' a mut ( dyn Any + ' static + Send + Sync ) ;
652
656
653
- pub type AnyMessage = Box < dyn Any + ' static + Send + Sync > ;
657
+ pub type AnyMessageBox = Box < dyn Any + ' static + Send + Sync > ;
654
658
655
659
#[ derive( ThisError , Debug ) ]
656
660
#[ error( "failed to convert a message" ) ]
657
661
pub struct AnyMessageError {
658
662
/// The original value provided
659
- pub value : AnyMessage ,
663
+ pub value : AnyMessageBox ,
660
664
/// The ID of the type expected by the buffer
661
665
pub type_id : TypeId ,
662
666
/// The name of the type expected by the buffer
663
667
pub type_name : & ' static str ,
664
668
}
665
669
666
- pub type AnyMessagePushResult = Result < Option < AnyMessage > , AnyMessageError > ;
670
+ pub type AnyMessagePushResult = Result < Option < AnyMessageBox > , AnyMessageError > ;
667
671
668
672
impl < T : ' static + Send + Sync + Any > AnyBufferManagement for Mut < ' _ , BufferStorage < T > > {
669
- fn any_push ( & mut self , session : Entity , value : AnyMessage ) -> AnyMessagePushResult {
673
+ fn any_push ( & mut self , session : Entity , value : AnyMessageBox ) -> AnyMessagePushResult {
670
674
let value = from_any_message :: < T > ( value) ?;
671
675
Ok ( self . push ( session, value) . map ( to_any_message) )
672
676
}
673
677
674
- fn any_push_as_oldest ( & mut self , session : Entity , value : AnyMessage ) -> AnyMessagePushResult {
678
+ fn any_push_as_oldest ( & mut self , session : Entity , value : AnyMessageBox ) -> AnyMessagePushResult {
675
679
let value = from_any_message :: < T > ( value) ?;
676
680
Ok ( self . push_as_oldest ( session, value) . map ( to_any_message) )
677
681
}
678
682
679
- fn any_pull ( & mut self , session : Entity ) -> Option < AnyMessage > {
683
+ fn any_pull ( & mut self , session : Entity ) -> Option < AnyMessageBox > {
680
684
self . pull ( session) . map ( to_any_message)
681
685
}
682
686
683
- fn any_pull_newest ( & mut self , session : Entity ) -> Option < AnyMessage > {
687
+ fn any_pull_newest ( & mut self , session : Entity ) -> Option < AnyMessageBox > {
684
688
self . pull_newest ( session) . map ( to_any_message)
685
689
}
686
690
@@ -713,11 +717,11 @@ fn to_any_mut<'a, T: 'static + Send + Sync + Any>(x: &'a mut T) -> AnyMessageMut
713
717
x
714
718
}
715
719
716
- fn to_any_message < T : ' static + Send + Sync + Any > ( x : T ) -> AnyMessage {
720
+ fn to_any_message < T : ' static + Send + Sync + Any > ( x : T ) -> AnyMessageBox {
717
721
Box :: new ( x)
718
722
}
719
723
720
- fn from_any_message < T : ' static + Send + Sync + Any > ( value : AnyMessage ) -> Result < T , AnyMessageError >
724
+ fn from_any_message < T : ' static + Send + Sync + Any > ( value : AnyMessageBox ) -> Result < T , AnyMessageError >
721
725
where
722
726
T : ' static ,
723
727
{
@@ -799,7 +803,7 @@ pub trait AnyBufferAccessInterface {
799
803
& self ,
800
804
entity_mut : & mut EntityWorldMut ,
801
805
session : Entity ,
802
- ) -> Result < AnyMessage , OperationError > ;
806
+ ) -> Result < AnyMessageBox , OperationError > ;
803
807
804
808
fn create_any_buffer_view < ' a > (
805
809
& self ,
@@ -915,7 +919,7 @@ impl<T: 'static + Send + Sync + Any> AnyBufferAccessInterface for AnyBufferAcces
915
919
& self ,
916
920
entity_mut : & mut EntityWorldMut ,
917
921
session : Entity ,
918
- ) -> Result < AnyMessage , OperationError > {
922
+ ) -> Result < AnyMessageBox , OperationError > {
919
923
entity_mut
920
924
. pull_from_buffer :: < T > ( session)
921
925
. map ( to_any_message)
@@ -955,19 +959,19 @@ pub struct DrainAnyBuffer<'a> {
955
959
}
956
960
957
961
impl < ' a > Iterator for DrainAnyBuffer < ' a > {
958
- type Item = AnyMessage ;
962
+ type Item = AnyMessageBox ;
959
963
960
964
fn next ( & mut self ) -> Option < Self :: Item > {
961
965
self . interface . any_next ( )
962
966
}
963
967
}
964
968
965
969
trait DrainAnyBufferInterface {
966
- fn any_next ( & mut self ) -> Option < AnyMessage > ;
970
+ fn any_next ( & mut self ) -> Option < AnyMessageBox > ;
967
971
}
968
972
969
973
impl < T : ' static + Send + Sync + Any > DrainAnyBufferInterface for DrainBuffer < ' _ , T > {
970
- fn any_next ( & mut self ) -> Option < AnyMessage > {
974
+ fn any_next ( & mut self ) -> Option < AnyMessageBox > {
971
975
self . next ( ) . map ( to_any_message)
972
976
}
973
977
}
@@ -1015,7 +1019,7 @@ impl Buffered for AnyBuffer {
1015
1019
}
1016
1020
1017
1021
impl Joined for AnyBuffer {
1018
- type Item = AnyMessage ;
1022
+ type Item = AnyMessageBox ;
1019
1023
fn pull ( & self , session : Entity , world : & mut World ) -> Result < Self :: Item , OperationError > {
1020
1024
let mut buffer_mut = world. get_entity_mut ( self . id ( ) ) . or_broken ( ) ?;
1021
1025
self . interface . pull ( & mut buffer_mut, session)
0 commit comments