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 {
288288 self
289289 }
290290
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.
298295 #[ doc( hidden) ]
299296 #[ must_use]
300297 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) ) ;
302304 self
303305 }
304306
307+ /// Sets alternative vector type name for type tables, in addition to default type `vector`.
305308 #[ doc( hidden) ]
306309 #[ must_use]
307310 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<()> {
119119 . set_debug_level ( 2 )
120120 . set_type_info_level ( 1 )
121121 . set_coverage_level ( 2 )
122- . set_vector_lib ( "vector" )
123- . set_vector_ctor ( "new" )
122+ . set_vector_ctor ( "vector.new" )
124123 . set_vector_type ( "vector" )
125124 . set_mutable_globals ( [ "mutable_global" ] )
126125 . set_userdata_types ( [ "MyUserdata" ] )
Original file line number Diff line number Diff line change @@ -123,7 +123,9 @@ fn test_vector_metatable() -> Result<()> {
123123 lua. set_type_metatable :: < Vector > ( Some ( vector_mt. clone ( ) ) ) ;
124124 lua. globals ( ) . set ( "Vector3" , vector_mt) ?;
125125
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" ) ;
127129
128130 // Test vector methods (fastcall)
129131 lua. load (
You can’t perform that action at this time.
0 commit comments