macro_rules! vslice {
($($elements:expr),* $(,)?) => { ... };
}
Expand description
Constructs a slice of [Variant
] literals, useful for passing to vararg functions.
Many APIs in Godot have variable-length arguments. GDScript can call such functions by simply passing more arguments, but in Rust,
the parameter type &[Variant]
is used.
This macro creates a slice of Variant
values.
§Examples
Variable number of arguments:
let slice: &[Variant] = vslice![42, "hello", true];
let concat: GString = godot::global::str(slice);
(In practice, you might want to use godot_str!
instead of str()
.)
Dynamic function call via reflection. NIL can still be passed inside vslice!
, just use Variant::nil()
.
let mut obj: Gd<Object> = some_object();
obj.call("some_method", vslice![Vector2i::new(1, 2), Variant::nil()]);
§See also
To create typed and untyped Array
s, use the array!
and varray!
macros respectively.
For dictionaries, a similar macro vdict!
exists.