@@ -4,7 +4,7 @@ use crate::query_builder::Query;
44use crate :: table:: IndexAlgo ;
55use crate :: { sys, AnonymousViewContext , IterBuf , ReducerContext , ReducerResult , SpacetimeType , Table , ViewContext } ;
66use spacetimedb_lib:: bsatn:: EncodeError ;
7- use spacetimedb_lib:: db:: raw_def:: v10:: RawModuleDefV10Builder ;
7+ use spacetimedb_lib:: db:: raw_def:: v10:: { ExplicitNameEntry , ExplicitNames as RawExplicitNames , RawModuleDefV10Builder } ;
88pub use spacetimedb_lib:: db:: raw_def:: v9:: Lifecycle as LifecycleReducer ;
99use spacetimedb_lib:: db:: raw_def:: v9:: { RawIndexAlgorithm , TableType , ViewResultHeader } ;
1010use spacetimedb_lib:: de:: { self , Deserialize , DeserializeOwned , Error as _, SeqProductAccess } ;
@@ -141,7 +141,7 @@ pub trait AnonymousView<'de, A: Args<'de>, T: ViewReturn> {
141141}
142142
143143/// A trait for types that can *describe* a callable function such as a reducer or view.
144- pub trait FnInfo {
144+ pub trait FnInfo : ExplicitNames {
145145 /// The type of function to invoke.
146146 type Invoke ;
147147
@@ -735,6 +735,8 @@ pub fn register_table<T: Table>() {
735735 }
736736
737737 table. finish ( ) ;
738+
739+ module. inner . add_explicit_names ( T :: explicit_names ( ) ) ;
738740 } )
739741}
740742
@@ -762,6 +764,8 @@ pub fn register_reducer<'a, A: Args<'a>, I: FnInfo<Invoke = ReducerFn>>(_: impl
762764 module. inner . add_reducer ( I :: NAME , params) ;
763765 }
764766 module. reducers . push ( I :: INVOKE ) ;
767+
768+ module. inner . add_explicit_names ( I :: explicit_names ( ) ) ;
765769 } )
766770}
767771
@@ -777,6 +781,8 @@ where
777781 let ret_ty = <Ret as SpacetimeType >:: make_type ( & mut module. inner ) ;
778782 module. inner . add_procedure ( I :: NAME , params, ret_ty) ;
779783 module. procedures . push ( I :: INVOKE ) ;
784+
785+ module. inner . add_explicit_names ( I :: explicit_names ( ) ) ;
780786 } )
781787}
782788
@@ -794,6 +800,8 @@ where
794800 . inner
795801 . add_view ( I :: NAME , module. views . len ( ) , true , false , params, return_type) ;
796802 module. views . push ( I :: INVOKE ) ;
803+
804+ module. inner . add_explicit_names ( I :: explicit_names ( ) ) ;
797805 } )
798806}
799807
@@ -811,6 +819,8 @@ where
811819 . inner
812820 . add_view ( I :: NAME , module. views_anon . len ( ) , true , true , params, return_type) ;
813821 module. views_anon . push ( I :: INVOKE ) ;
822+
823+ module. inner . add_explicit_names ( I :: explicit_names ( ) ) ;
814824 } )
815825}
816826
@@ -1273,3 +1283,9 @@ pub(crate) fn read_bytes_source_as<T: DeserializeOwned + 'static>(source: BytesS
12731283 bsatn:: from_slice :: < T > ( & buf)
12741284 . unwrap_or_else ( |err| panic ! ( "Failed to BSATN-deserialize `{}`: {err:#?}" , std:: any:: type_name:: <T >( ) ) )
12751285}
1286+
1287+ pub trait ExplicitNames {
1288+ fn explicit_names ( ) -> RawExplicitNames {
1289+ RawExplicitNames :: default ( )
1290+ }
1291+ }
0 commit comments