Add examples to Module custom type API.
This commit is contained in:
parent
22081850a9
commit
6f4240ed5a
@ -417,20 +417,68 @@ impl Module {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// Map a custom type to a friendly display name.
|
/// Map a custom type to a friendly display name.
|
||||||
|
///
|
||||||
|
/// # Example
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// # use rhai::Module;
|
||||||
|
/// #[derive(Clone)]
|
||||||
|
/// struct TestStruct {}
|
||||||
|
///
|
||||||
|
/// let name = std::any::type_name::of::<TestStruct>());
|
||||||
|
///
|
||||||
|
/// let mut module = Module::new();
|
||||||
|
///
|
||||||
|
/// module.set_custom_type<TestStruct>("MyType");
|
||||||
|
///
|
||||||
|
/// assert_eq!(module.get_custom_type(name, Some("MyType"));
|
||||||
|
/// ```
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
pub fn set_custom_type<T>(&mut self, name: &str) {
|
pub fn set_custom_type<T>(&mut self, name: &str) -> &mut Self {
|
||||||
self.custom_types.add_type::<T>(name)
|
self.custom_types.add_type::<T>(name);
|
||||||
|
self
|
||||||
}
|
}
|
||||||
/// Map a custom type to a friendly display name.
|
/// Map a custom type to a friendly display name.
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// # use rhai::Module;
|
||||||
|
/// #[derive(Clone)]
|
||||||
|
/// struct TestStruct {}
|
||||||
|
///
|
||||||
|
/// let name = std::any::type_name::of::<TestStruct>());
|
||||||
|
///
|
||||||
|
/// let mut module = Module::new();
|
||||||
|
///
|
||||||
|
/// module.set_custom_type_raw(name, "MyType");
|
||||||
|
///
|
||||||
|
/// assert_eq!(module.get_custom_type(name, Some("MyType"));
|
||||||
|
/// ```
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
pub fn set_custom_type_raw(
|
pub fn set_custom_type_raw(
|
||||||
&mut self,
|
&mut self,
|
||||||
type_name: impl Into<Identifier>,
|
type_name: impl Into<Identifier>,
|
||||||
name: impl Into<Identifier>,
|
name: impl Into<Identifier>,
|
||||||
) {
|
) -> &mut Self {
|
||||||
self.custom_types.add(type_name, name)
|
self.custom_types.add(type_name, name);
|
||||||
|
self
|
||||||
}
|
}
|
||||||
/// Get the display name of a registered custom type.
|
/// Get the display name of a registered custom type.
|
||||||
|
///
|
||||||
|
/// # Example
|
||||||
|
///
|
||||||
|
/// ```
|
||||||
|
/// # use rhai::Module;
|
||||||
|
/// #[derive(Clone)]
|
||||||
|
/// struct TestStruct {}
|
||||||
|
///
|
||||||
|
/// let name = std::any::type_name::of::<TestStruct>());
|
||||||
|
///
|
||||||
|
/// let mut module = Module::new();
|
||||||
|
///
|
||||||
|
/// module.set_custom_type<TestStruct>("MyType");
|
||||||
|
///
|
||||||
|
/// assert_eq!(module.get_custom_type(name, Some("MyType"));
|
||||||
|
/// ```
|
||||||
#[inline(always)]
|
#[inline(always)]
|
||||||
pub fn get_custom_type(&self, key: &str) -> Option<&str> {
|
pub fn get_custom_type(&self, key: &str) -> Option<&str> {
|
||||||
self.custom_types.get(key)
|
self.custom_types.get(key)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user