Skip to content

Commit 2b6b014

Browse files
committed
Merge Compiler::set_vector_lib into set_vector_ctor
1 parent 4cfe0be commit 2b6b014

File tree

3 files changed

+15
-11
lines changed

3 files changed

+15
-11
lines changed

src/chunk.rs

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff 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 {

tests/chunk.rs

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff 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"])

tests/luau.rs

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff 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(

0 commit comments

Comments
 (0)