File tree Expand file tree Collapse file tree 3 files changed +15
-11
lines changed Expand file tree Collapse file tree 3 files changed +15
-11
lines changed Original file line number Diff line number Diff line change @@ -288,20 +288,23 @@ impl Compiler {
288
288
self
289
289
}
290
290
291
- #[ doc( hidden) ]
292
- #[ must_use]
293
- pub fn set_vector_lib ( mut self , lib : impl Into < StdString > ) -> Self {
294
- self . vector_lib = Some ( lib. into ( ) ) ;
295
- self
296
- }
297
-
291
+ /// Sets alternative global builtin to construct vectors, in addition to default builtin
292
+ /// `vector.create`.
293
+ ///
294
+ /// To set the library and method name, use the `lib.ctor` format.
298
295
#[ doc( hidden) ]
299
296
#[ must_use]
300
297
pub fn set_vector_ctor ( mut self , ctor : impl Into < StdString > ) -> Self {
301
- self . vector_ctor = Some ( ctor. into ( ) ) ;
298
+ let ctor = ctor. into ( ) ;
299
+ let lib_ctor = ctor. split_once ( '.' ) ;
300
+ self . vector_lib = lib_ctor. as_ref ( ) . map ( |& ( lib, _) | lib. to_owned ( ) ) ;
301
+ self . vector_ctor = ( lib_ctor. as_ref ( ) )
302
+ . map ( |& ( _, ctor) | ctor. to_owned ( ) )
303
+ . or ( Some ( ctor) ) ;
302
304
self
303
305
}
304
306
307
+ /// Sets alternative vector type name for type tables, in addition to default type `vector`.
305
308
#[ doc( hidden) ]
306
309
#[ must_use]
307
310
pub fn set_vector_type ( mut self , r#type : impl Into < StdString > ) -> Self {
Original file line number Diff line number Diff line change @@ -119,8 +119,7 @@ fn test_compiler() -> Result<()> {
119
119
. set_debug_level ( 2 )
120
120
. set_type_info_level ( 1 )
121
121
. set_coverage_level ( 2 )
122
- . set_vector_lib ( "vector" )
123
- . set_vector_ctor ( "new" )
122
+ . set_vector_ctor ( "vector.new" )
124
123
. set_vector_type ( "vector" )
125
124
. set_mutable_globals ( [ "mutable_global" ] )
126
125
. set_userdata_types ( [ "MyUserdata" ] )
Original file line number Diff line number Diff line change @@ -123,7 +123,9 @@ fn test_vector_metatable() -> Result<()> {
123
123
lua. set_type_metatable :: < Vector > ( Some ( vector_mt. clone ( ) ) ) ;
124
124
lua. globals ( ) . set ( "Vector3" , vector_mt) ?;
125
125
126
- let compiler = Compiler :: new ( ) . set_vector_lib ( "Vector3" ) . set_vector_ctor ( "new" ) ;
126
+ let compiler = Compiler :: new ( )
127
+ . set_vector_ctor ( "Vector3.new" )
128
+ . set_vector_type ( "Vector3" ) ;
127
129
128
130
// Test vector methods (fastcall)
129
131
lua. load (
You can’t perform that action at this time.
0 commit comments