Struct Object

Source
pub struct Object<'obj> { /* private fields */ }
Expand description

对象实例的引用

Implementations§

Source§

impl<'obj> Object<'obj>

Source

pub fn is_native(&self) -> bool

是否为原生对象 (由pbni-rs导出的对象) FIXME: 始终返回false?

Source

pub unsafe fn get_native_ref<T: UserObject>(&self) -> Result<&'obj T>

获取原生对象的引用

§Safety

引用类型不能保证始终有效,详情请阅读内存安全说明

§Examples
let obj = obj.get_native_ref::<RustObject>().uwnrap();
Source

pub unsafe fn get_native_mut<T: UserObject>(&mut self) -> Result<&'obj mut T>

获取原生对象的可变引用

§Safety

引用类型不能保证始终有效,详情请阅读内存安全说明

§Examples
let mut obj = obj.get_native_mut::<RustObject>().uwnrap();
obj.set_var("is_test","rust").unwrap();
Source

pub fn share(&self) -> SharedObject

共享对象

Source

pub fn into_shared(self) -> SharedObject

转换为共享对象

Source§

impl<'obj> Object<'obj>

Source

pub fn get_var_count(&self) -> pbulong

获取实例变量数量

§Examples
let cnt = obj.get_var_count("is_var");
//遍历所有变量并输出变量名
for id in 0..cnt {
    let fid = unsafe { FieldId::new(id) };
    println!("field id: {}, name: {}", id, obj.get_var_name(fid));
}
Source

pub fn get_var_id(&self, name: impl AsPBStr) -> Option<FieldId>

查找实例变量ID

§Examples
let fid = obj.get_var_id("is_var").unwrap();
obj.set_var_str(fid,"rust");
Source

pub fn get_var_name(&self, fid: impl VarId) -> &PBStr

通过实例变量ID获取变量名

§Panics

访问不存在的变量时会触发Panic

§Examples
let fid = obj.get_var_id("is_var").unwrap();
assert_eq!(pbstr!("is_var"),obj.get_var_name(fid));
Source

pub fn has_var(self, name: impl AsPBStr) -> bool

判断是否存在指定实例变量

§Examples
if object.has_var("is_var") {
    object.set_var_str("is_var","rust");
}
Source

pub fn get_var_type(&self, fid: impl VarId) -> ValueType

获取变量类型

§Panics

访问不存在的变量时会触发Panic

§Examples
if object.get_var_type("is_var") == ValueType::String {
    object.set_var_str("is_var","rust");
}
Source

pub fn is_var_null(&self, fid: impl VarId) -> bool

判断实例变量是否为NULL

§Panics

访问不存在的变量时会触发Panic

Source

pub fn is_var_array(&self, fid: impl VarId) -> bool

判断实例变量类型是否为数组

§Panics

访问不存在的变量时会触发Panic

Source

pub fn is_var_object(&self, fid: impl VarId) -> bool

判断实例变量类型是否为对象

§Panics

访问不存在的变量时会触发Panic

Source

pub fn update_field(&self, fid: impl VarId) -> Result<()>

刷新实例变量关联的UI状态,如窗口的title变量修改后需要调用此函数以刷新UI

§Panics

访问不存在的变量时会触发Panic

§Examples
object.set_var_str("title","rust");
object.update_field("title");
Source

pub fn get_var_int(&self, fid: impl VarId) -> Option<pbint>

获取int类型实例变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_var_int_unchecked(&self, fid: impl VarId) -> Option<pbint>

获取int类型实例变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn get_var_uint(&self, fid: impl VarId) -> Option<pbuint>

获取uint类型实例变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_var_uint_unchecked(&self, fid: impl VarId) -> Option<pbuint>

获取uint类型实例变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn get_var_long(&self, fid: impl VarId) -> Option<pblong>

获取long类型实例变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_var_long_unchecked(&self, fid: impl VarId) -> Option<pblong>

获取long类型实例变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn get_var_ulong(&self, fid: impl VarId) -> Option<pbulong>

获取ulong类型实例变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_var_ulong_unchecked(&self, fid: impl VarId) -> Option<pbulong>

获取ulong类型实例变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn get_var_longlong(&self, fid: impl VarId) -> Option<pblonglong>

获取longlong类型实例变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_var_longlong_unchecked( &self, fid: impl VarId, ) -> Option<pblonglong>

获取longlong类型实例变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn get_var_real(&self, fid: impl VarId) -> Option<pbreal>

获取real类型实例变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_var_real_unchecked(&self, fid: impl VarId) -> Option<pbreal>

获取real类型实例变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn get_var_double(&self, fid: impl VarId) -> Option<pbdouble>

获取double类型实例变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_var_double_unchecked( &self, fid: impl VarId, ) -> Option<pbdouble>

获取double类型实例变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn get_var_dec(&self, fid: impl VarId) -> Option<Decimal>

获取decimal类型实例变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_var_dec_unchecked(&self, fid: impl VarId) -> Option<Decimal>

获取decimal类型实例变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub unsafe fn get_var_str(&self, fid: impl VarId) -> Option<&'obj PBStr>

获取string类型实例变量的引用

§Panics

访问不存在的变量或类型不匹配时会触发Panic

§Safety

引用类型不能保证始终有效,详情请阅读内存安全说明

Source

pub unsafe fn get_var_str_unchecked( &self, fid: impl VarId, ) -> Option<&'obj PBStr>

获取string类型实例变量的引用,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety
  • 类型不兼容时可能会出现未定义行为
  • 引用类型不能保证始终有效,详情请阅读内存安全说明
Source

pub fn get_var_string(&self, fid: impl VarId) -> Option<PBString>

获取string类型实例变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_var_string_unchecked( &self, fid: impl VarId, ) -> Option<PBString>

获取string类型实例变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn get_var_bool(&self, fid: impl VarId) -> Option<bool>

获取boolean类型实例变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_var_bool_unchecked(&self, fid: impl VarId) -> Option<bool>

获取boolean类型实例变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub unsafe fn get_var_blob(&self, fid: impl VarId) -> Option<&'obj [u8]>

获取blob类型实例变量的引用

§Panics

访问不存在的变量或类型不匹配时会触发Panic

§Safety

引用类型不能保证始终有效,详情请阅读内存安全说明

Source

pub unsafe fn get_var_blob_unchecked( &self, fid: impl VarId, ) -> Option<&'obj [u8]>

获取blob类型实例变量的引用,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety
  • 类型不兼容时可能会出现未定义行为
  • 引用类型不能保证始终有效,详情请阅读内存安全说明
Source

pub fn get_var_date(&self, fid: impl VarId) -> Option<NaiveDate>

获取date类型实例变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_var_date_unchecked( &self, fid: impl VarId, ) -> Option<NaiveDate>

获取date类型实例变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn get_var_time(&self, fid: impl VarId) -> Option<NaiveTime>

获取time类型实例变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_var_time_unchecked( &self, fid: impl VarId, ) -> Option<NaiveTime>

获取time类型实例变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn get_var_datetime(&self, fid: impl VarId) -> Option<NaiveDateTime>

获取datetime类型实例变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_var_datetime_unchecked( &self, fid: impl VarId, ) -> Option<NaiveDateTime>

获取datetime类型实例变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn get_var_char(&self, fid: impl VarId) -> Option<WideChar>

获取char类型实例变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_var_char_unchecked(&self, fid: impl VarId) -> Option<WideChar>

获取char类型实例变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn get_var_byte(&self, fid: impl VarId) -> Option<pbbyte>

获取byte类型实例变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_var_byte_unchecked(&self, fid: impl VarId) -> Option<pbbyte>

获取byte类型实例变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub unsafe fn get_var_object(&self, fid: impl VarId) -> Option<Object<'obj>>

获取对象类型实例变量的引用

§Panics

访问不存在的变量或类型不匹配时会触发Panic

§Safety

引用类型不能保证始终有效,详情请阅读内存安全说明

Source

pub unsafe fn get_var_object_unchecked( &self, fid: impl VarId, ) -> Option<Object<'obj>>

获取对象类型实例变量的引用,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety
  • 类型不兼容时可能会出现未定义行为
  • 引用类型不能保证始终有效,详情请阅读内存安全说明
Source

pub unsafe fn get_var_array(&self, fid: impl VarId) -> Option<Array<'obj>>

获取数组类型实例变量的引用

§Panics

访问不存在的变量或类型不匹配时会触发Panic

§Safety

引用类型不能保证始终有效,详情请阅读内存安全说明

Source

pub unsafe fn get_var_array_unchecked( &self, fid: impl VarId, ) -> Option<Array<'obj>>

获取数组类型实例变量的引用,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety
  • 类型不兼容时可能会出现未定义行为
  • 引用类型不能保证始终有效,详情请阅读内存安全说明
Source

pub unsafe fn get_var_any(&self, fid: impl VarId) -> Option<Value<'obj>>

获取any类型实例变量的引用

§Panics

访问不存在的变量或类型不匹配时会触发Panic

§Safety

引用类型不能保证始终有效,详情请阅读内存安全说明

Source

pub unsafe fn get_var_any_unchecked( &self, fid: impl VarId, ) -> Option<Value<'obj>>

获取any类型实例变量的引用,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety
  • 类型不兼容时可能会出现未定义行为
  • 引用类型不能保证始终有效,详情请阅读内存安全说明
Source

pub fn set_var_to_null(&self, fid: impl VarId)

设置实例变量的值为NULL

§Panics

访问不存在的变量时会触发Panic

Source

pub fn set_var_int(&mut self, fid: impl VarId, value: pbint) -> Result<()>

设置int类型实例变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_var_int_unchecked( &mut self, fid: impl VarId, value: pbint, ) -> Result<()>

设置int类型实例变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_var_uint(&mut self, fid: impl VarId, value: pbuint) -> Result<()>

设置uint类型实例变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_var_uint_unchecked( &mut self, fid: impl VarId, value: pbuint, ) -> Result<()>

设置uint类型实例变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_var_long(&mut self, fid: impl VarId, value: pblong) -> Result<()>

设置long类型实例变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_var_long_unchecked( &mut self, fid: impl VarId, value: pblong, ) -> Result<()>

设置long类型实例变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_var_ulong(&mut self, fid: impl VarId, value: pbulong) -> Result<()>

设置ulong类型实例变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_var_ulong_unchecked( &mut self, fid: impl VarId, value: pbulong, ) -> Result<()>

设置ulong类型实例变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_var_longlong( &mut self, fid: impl VarId, value: pblonglong, ) -> Result<()>

设置longlong类型实例变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_var_longlong_unchecked( &mut self, fid: impl VarId, value: pblonglong, ) -> Result<()>

设置longlong类型实例变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_var_real(&mut self, fid: impl VarId, value: pbreal) -> Result<()>

设置real类型实例变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_var_real_unchecked( &mut self, fid: impl VarId, value: pbreal, ) -> Result<()>

设置real类型实例变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_var_double(&mut self, fid: impl VarId, value: pbdouble) -> Result<()>

设置double类型实例变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_var_double_unchecked( &mut self, fid: impl VarId, value: pbdouble, ) -> Result<()>

设置double类型实例变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_var_dec(&mut self, fid: impl VarId, value: Decimal) -> Result<()>

设置decimal类型实例变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_var_dec_unchecked( &mut self, fid: impl VarId, value: Decimal, ) -> Result<()>

设置decimal类型实例变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_var_str( &mut self, fid: impl VarId, value: impl AsPBStr, ) -> Result<()>

设置string类型实例变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_var_str_unchecked( &mut self, fid: impl VarId, value: impl AsPBStr, ) -> Result<()>

设置string类型实例变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_var_bool(&mut self, fid: impl VarId, value: bool) -> Result<()>

设置boolean类型实例变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_var_bool_unchecked( &mut self, fid: impl VarId, value: bool, ) -> Result<()>

设置boolean类型实例变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_var_blob( &mut self, fid: impl VarId, value: impl AsRef<[u8]>, ) -> Result<()>

设置blob类型实例变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_var_blob_unchecked( &mut self, fid: impl VarId, value: impl AsRef<[u8]>, ) -> Result<()>

设置blob类型实例变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_var_date(&mut self, fid: impl VarId, value: NaiveDate) -> Result<()>

设置date类型实例变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_var_date_unchecked( &mut self, fid: impl VarId, value: NaiveDate, ) -> Result<()>

设置date类型实例变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_var_time(&mut self, fid: impl VarId, value: NaiveTime) -> Result<()>

设置time类型实例变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_var_time_unchecked( &mut self, fid: impl VarId, value: NaiveTime, ) -> Result<()>

设置time类型实例变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_var_datetime( &mut self, fid: impl VarId, value: NaiveDateTime, ) -> Result<()>

设置datetime类型实例变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_var_datetime_unchecked( &mut self, fid: impl VarId, value: NaiveDateTime, ) -> Result<()>

设置datetime类型实例变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_var_char(&mut self, fid: impl VarId, value: WideChar) -> Result<()>

设置char类型实例变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_var_char_unchecked( &mut self, fid: impl VarId, value: WideChar, ) -> Result<()>

设置char类型实例变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_var_byte(&mut self, fid: impl VarId, value: pbbyte) -> Result<()>

设置byte类型实例变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_var_byte_unchecked( &mut self, fid: impl VarId, value: pbbyte, ) -> Result<()>

设置byte类型实例变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_var_object( &mut self, fid: impl VarId, value: &Object<'_>, ) -> Result<()>

设置对象类型实例变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_var_object_unchecked( &mut self, fid: impl VarId, value: &Object<'_>, ) -> Result<()>

设置对象类型实例变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_var_array( &mut self, fid: impl VarId, value: &Array<'_>, ) -> Result<()>

设置数组类型实例变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_var_array_unchecked( &mut self, fid: impl VarId, value: &Array<'_>, ) -> Result<()>

设置数组类型实例变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source§

impl<'obj> Object<'obj>

Source

pub fn get_shared_var_id(&self, name: impl AsPBStr) -> Option<FieldId>

获取共享(静态)变量ID

§Examples
let fid = object.get_shared_var_id("ss_var").unwrap();
object.set_shared_var_str(fid,"rust");
Source

pub fn has_shared_var(self, name: impl AsPBStr) -> bool

判断是否存在指定共享(静态)变量

§Examples
if object.has_shared_var("ss_var") {
    object.set_shared_var_str("ss_var","rust");
}
Source

pub fn get_shared_var_type(&self, fid: impl SharedVarId) -> ValueType

获取指定共享(静态)变量类型

§Panics

访问不存在的变量时会触发Panic

§Examples
if object.get_shared_var_type("ss_var") == ValueType::String {
    object.set_shared_var_str("ss_var","rust");
}
Source

pub fn is_shared_var_null(&self, fid: impl SharedVarId) -> bool

判断指定共享(静态)变量是否为NULL

§Panics

访问不存在的变量时会触发Panic

Source

pub fn is_shared_var_array(&self, fid: impl SharedVarId) -> bool

判断指定共享(静态)变量是否为数组类型

§Panics

访问不存在的变量时会触发Panic

Source

pub fn is_shared_var_object(&self, fid: impl SharedVarId) -> bool

判断指定共享(静态)变量是否为对象类型

§Panics

访问不存在的变量时会触发Panic

Source

pub fn get_shared_var_int(&self, fid: impl VarId) -> Option<pbint>

获取int类型共享(静态)变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_shared_var_int_unchecked( &self, fid: impl VarId, ) -> Option<pbint>

获取int类型共享(静态)变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn get_shared_var_uint(&self, fid: impl VarId) -> Option<pbuint>

获取uint类型共享(静态)变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_shared_var_uint_unchecked( &self, fid: impl VarId, ) -> Option<pbuint>

获取uint类型共享(静态)变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn get_shared_var_long(&self, fid: impl VarId) -> Option<pblong>

获取long类型共享(静态)变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_shared_var_long_unchecked( &self, fid: impl VarId, ) -> Option<pblong>

获取long类型共享(静态)变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn get_shared_var_ulong(&self, fid: impl VarId) -> Option<pbulong>

获取ulong类型共享(静态)变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_shared_var_ulong_unchecked( &self, fid: impl VarId, ) -> Option<pbulong>

获取ulong类型共享(静态)变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn get_shared_var_longlong(&self, fid: impl VarId) -> Option<pblonglong>

获取longlong类型共享(静态)变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_shared_var_longlong_unchecked( &self, fid: impl VarId, ) -> Option<pblonglong>

获取longlong类型共享(静态)变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn get_shared_var_real(&self, fid: impl VarId) -> Option<pbreal>

获取real类型共享(静态)变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_shared_var_real_unchecked( &self, fid: impl VarId, ) -> Option<pbreal>

获取real类型共享(静态)变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn get_shared_var_double(&self, fid: impl VarId) -> Option<pbdouble>

获取double类型共享(静态)变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_shared_var_double_unchecked( &self, fid: impl VarId, ) -> Option<pbdouble>

获取double类型共享(静态)变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn get_shared_var_dec(&self, fid: impl VarId) -> Option<Decimal>

获取decimal类型共享(静态)变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_shared_var_dec_unchecked( &self, fid: impl VarId, ) -> Option<Decimal>

获取decimal类型共享(静态)变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub unsafe fn get_shared_var_str(&self, fid: impl VarId) -> Option<&'obj PBStr>

获取string类型共享(静态)变量的引用

§Panics

访问不存在的变量或类型不匹配时会触发Panic

§Safety

引用类型不能保证始终有效,详情请阅读内存安全说明

Source

pub unsafe fn get_shared_var_str_unchecked( &self, fid: impl VarId, ) -> Option<&'obj PBStr>

获取string类型共享(静态)变量的引用,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety
  • 类型不兼容时可能会出现未定义行为
  • 引用类型不能保证始终有效,详情请阅读内存安全说明
Source

pub fn get_shared_var_string(&self, fid: impl VarId) -> Option<PBString>

获取string类型共享(静态)变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_shared_var_string_unchecked( &self, fid: impl VarId, ) -> Option<PBString>

获取string类型共享(静态)变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn get_shared_var_bool(&self, fid: impl VarId) -> Option<bool>

获取boolean类型共享(静态)变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_shared_var_bool_unchecked( &self, fid: impl VarId, ) -> Option<bool>

获取boolean类型共享(静态)变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub unsafe fn get_shared_var_blob(&self, fid: impl VarId) -> Option<&'obj [u8]>

获取blob类型共享(静态)变量的引用

§Panics

访问不存在的变量或类型不匹配时会触发Panic

§Safety

引用类型不能保证始终有效,详情请阅读内存安全说明

Source

pub unsafe fn get_shared_var_blob_unchecked( &self, fid: impl VarId, ) -> Option<&'obj [u8]>

获取blob类型共享(静态)变量的引用,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety
  • 类型不兼容时可能会出现未定义行为
  • 引用类型不能保证始终有效,详情请阅读内存安全说明
Source

pub fn get_shared_var_date(&self, fid: impl VarId) -> Option<NaiveDate>

获取date类型共享(静态)变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_shared_var_date_unchecked( &self, fid: impl VarId, ) -> Option<NaiveDate>

获取date类型共享(静态)变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn get_shared_var_time(&self, fid: impl VarId) -> Option<NaiveTime>

获取time类型共享(静态)变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_shared_var_time_unchecked( &self, fid: impl VarId, ) -> Option<NaiveTime>

获取time类型共享(静态)变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn get_shared_var_datetime(&self, fid: impl VarId) -> Option<NaiveDateTime>

获取datetime类型共享(静态)变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_shared_var_datetime_unchecked( &self, fid: impl VarId, ) -> Option<NaiveDateTime>

获取datetime类型共享(静态)变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn get_shared_var_char(&self, fid: impl VarId) -> Option<WideChar>

获取char类型共享(静态)变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_shared_var_char_unchecked( &self, fid: impl VarId, ) -> Option<WideChar>

获取char类型共享(静态)变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn get_shared_var_byte(&self, fid: impl VarId) -> Option<pbbyte>

获取byte类型共享(静态)变量值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn get_shared_var_byte_unchecked( &self, fid: impl VarId, ) -> Option<pbbyte>

获取byte类型共享(静态)变量值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub unsafe fn get_shared_var_object( &self, fid: impl VarId, ) -> Option<Object<'obj>>

获取对象类型共享(静态)变量的引用

§Panics

访问不存在的变量或类型不匹配时会触发Panic

§Safety

引用类型不能保证始终有效,详情请阅读内存安全说明

Source

pub unsafe fn get_shared_var_object_unchecked( &self, fid: impl VarId, ) -> Option<Object<'obj>>

获取对象类型共享(静态)变量的引用,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety
  • 类型不兼容时可能会出现未定义行为
  • 引用类型不能保证始终有效,详情请阅读内存安全说明
Source

pub unsafe fn get_shared_var_array( &self, fid: impl VarId, ) -> Option<Array<'obj>>

获取数组类型共享(静态)变量的引用

§Panics

访问不存在的变量或类型不匹配时会触发Panic

§Safety

引用类型不能保证始终有效,详情请阅读内存安全说明

Source

pub unsafe fn get_shared_var_array_unchecked( &self, fid: impl VarId, ) -> Option<Array<'obj>>

获取数组类型共享(静态)变量的引用,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety
  • 类型不兼容时可能会出现未定义行为
  • 引用类型不能保证始终有效,详情请阅读内存安全说明
Source

pub unsafe fn get_shared_var_any(&self, fid: impl VarId) -> Option<Value<'obj>>

获取any类型共享(静态)变量的引用

§Panics

访问不存在的变量或类型不匹配时会触发Panic

§Safety

引用类型不能保证始终有效,详情请阅读内存安全说明

Source

pub unsafe fn get_shared_var_any_unchecked( &self, fid: impl VarId, ) -> Option<Value<'obj>>

获取any类型共享(静态)变量的引用,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety
  • 类型不兼容时可能会出现未定义行为
  • 引用类型不能保证始终有效,详情请阅读内存安全说明
Source

pub fn set_shared_var_to_null(&self, fid: impl VarId)

设置共享(静态)变量的值为NULL

§Panics

访问不存在的变量时会触发Panic

Source

pub fn set_shared_var_int( &mut self, fid: impl VarId, value: pbint, ) -> Result<()>

设置int类型共享(静态)变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_shared_var_int_unchecked( &mut self, fid: impl VarId, value: pbint, ) -> Result<()>

设置int类型共享(静态)变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_shared_var_uint( &mut self, fid: impl VarId, value: pbuint, ) -> Result<()>

设置uint类型共享(静态)变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_shared_var_uint_unchecked( &mut self, fid: impl VarId, value: pbuint, ) -> Result<()>

设置uint类型共享(静态)变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_shared_var_long( &mut self, fid: impl VarId, value: pblong, ) -> Result<()>

设置long类型共享(静态)变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_shared_var_long_unchecked( &mut self, fid: impl VarId, value: pblong, ) -> Result<()>

设置long类型共享(静态)变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_shared_var_ulong( &mut self, fid: impl VarId, value: pbulong, ) -> Result<()>

设置ulong类型共享(静态)变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_shared_var_ulong_unchecked( &mut self, fid: impl VarId, value: pbulong, ) -> Result<()>

设置ulong类型共享(静态)变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_shared_var_longlong( &mut self, fid: impl VarId, value: pblonglong, ) -> Result<()>

设置longlong类型共享(静态)变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_shared_var_longlong_unchecked( &mut self, fid: impl VarId, value: pblonglong, ) -> Result<()>

设置longlong类型共享(静态)变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_shared_var_real( &mut self, fid: impl VarId, value: pbreal, ) -> Result<()>

设置real类型共享(静态)变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_shared_var_real_unchecked( &mut self, fid: impl VarId, value: pbreal, ) -> Result<()>

设置real类型共享(静态)变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_shared_var_double( &mut self, fid: impl VarId, value: pbdouble, ) -> Result<()>

设置double类型共享(静态)变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_shared_var_double_unchecked( &mut self, fid: impl VarId, value: pbdouble, ) -> Result<()>

设置double类型共享(静态)变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_shared_var_dec( &mut self, fid: impl VarId, value: Decimal, ) -> Result<()>

设置decimal类型共享(静态)变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_shared_var_dec_unchecked( &mut self, fid: impl VarId, value: Decimal, ) -> Result<()>

设置decimal类型共享(静态)变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_shared_var_str( &mut self, fid: impl VarId, value: impl AsPBStr, ) -> Result<()>

设置string类型共享(静态)变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_shared_var_str_unchecked( &mut self, fid: impl VarId, value: impl AsPBStr, ) -> Result<()>

设置string类型共享(静态)变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_shared_var_bool( &mut self, fid: impl VarId, value: bool, ) -> Result<()>

设置boolean类型共享(静态)变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_shared_var_bool_unchecked( &mut self, fid: impl VarId, value: bool, ) -> Result<()>

设置boolean类型共享(静态)变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_shared_var_blob( &mut self, fid: impl VarId, value: impl AsRef<[u8]>, ) -> Result<()>

设置blob类型共享(静态)变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_shared_var_blob_unchecked( &mut self, fid: impl VarId, value: impl AsRef<[u8]>, ) -> Result<()>

设置blob类型共享(静态)变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_shared_var_date( &mut self, fid: impl VarId, value: NaiveDate, ) -> Result<()>

设置date类型共享(静态)变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_shared_var_date_unchecked( &mut self, fid: impl VarId, value: NaiveDate, ) -> Result<()>

设置date类型共享(静态)变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_shared_var_time( &mut self, fid: impl VarId, value: NaiveTime, ) -> Result<()>

设置time类型共享(静态)变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_shared_var_time_unchecked( &mut self, fid: impl VarId, value: NaiveTime, ) -> Result<()>

设置time类型共享(静态)变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_shared_var_datetime( &mut self, fid: impl VarId, value: NaiveDateTime, ) -> Result<()>

设置datetime类型共享(静态)变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_shared_var_datetime_unchecked( &mut self, fid: impl VarId, value: NaiveDateTime, ) -> Result<()>

设置datetime类型共享(静态)变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_shared_var_char( &mut self, fid: impl VarId, value: WideChar, ) -> Result<()>

设置char类型共享(静态)变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_shared_var_char_unchecked( &mut self, fid: impl VarId, value: WideChar, ) -> Result<()>

设置char类型共享(静态)变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_shared_var_byte( &mut self, fid: impl VarId, value: pbbyte, ) -> Result<()>

设置byte类型共享(静态)变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_shared_var_byte_unchecked( &mut self, fid: impl VarId, value: pbbyte, ) -> Result<()>

设置byte类型共享(静态)变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_shared_var_object( &mut self, fid: impl VarId, value: &Object<'_>, ) -> Result<()>

设置对象类型共享(静态)变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_shared_var_object_unchecked( &mut self, fid: impl VarId, value: &Object<'_>, ) -> Result<()>

设置对象类型共享(静态)变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source

pub fn set_shared_var_array( &mut self, fid: impl VarId, value: &Array<'_>, ) -> Result<()>

设置数组类型共享(静态)变量的值

§Panics

访问不存在的变量或类型不匹配时会触发Panic

Source

pub unsafe fn set_shared_var_array_unchecked( &mut self, fid: impl VarId, value: &Array<'_>, ) -> Result<()>

设置数组类型共享(静态)变量的值,不检查类型

§Panics

访问不存在的变量时会触发Panic

§Safety

类型不兼容时可能会出现未定义行为

Source§

impl<'obj> Object<'obj>

Source

pub fn get_method_id(&self, name: impl AsMethodName) -> Option<MethodId>

查找函数ID

§Examples
let fid = object.get_method_id("of_test").unwrap();
let invoker = object.begin_invoke_method(fid).unwrap();
invoker.invoke();
Source

pub fn get_event_id(&self, name: impl AsMethodName) -> Option<MethodId>

查找事件ID

§Examples
let fid = object.get_event_id("on_test").unwrap();
let invoker = object.begin_invoke_event(fid).unwrap();
invoker.trigger();
Source

pub fn invoke_method<F, R>( &mut self, mid: impl AsMethodId, arg_cb: F, ) -> Result<R>
where F: FnOnce(Arguments<'_>) -> Result<()>, R: FromValueOwned,

调用函数

§Examples
let rv: pbint = obj.invoke_method("of_Test", pbargs!["abcd", 123]).unwrap();
Source

pub fn trigger_event<F, R>( &mut self, mid: impl AsMethodId, arg_cb: F, ) -> Result<R>
where F: FnOnce(Arguments<'_>) -> Result<()>, R: FromValueOwned,

调用事件

§Examples
let rv: pbint = obj.trigger_event("onTest", pbargs!["abcd", 123]).unwrap();
Source

pub fn begin_invoke_method<'a>( &'a mut self, mid: impl AsMethodId, ) -> Result<Invoker<ObjectMethod<'a, 'obj>>>

初始化函数调用上下文

§Examples
let invoker = object.begin_invoke_method("of_test").unwrap();
invoker.invoke();
Source

pub fn begin_invoke_event<'a>( &'a mut self, mid: impl AsMethodId, ) -> Result<Invoker<ObjectEvent<'a, 'obj>>>

初始化事件调用上下文

§Examples
let invoker = object.begin_invoke_event("on_test").unwrap();
invoker.trigger();

Trait Implementations§

Source§

impl From<Object<'_>> for SharedObject

Source§

fn from(obj: Object<'_>) -> Self

Converts to this type from the input type.

Auto Trait Implementations§

§

impl<'obj> !Freeze for Object<'obj>

§

impl<'obj> !RefUnwindSafe for Object<'obj>

§

impl<'obj> !Send for Object<'obj>

§

impl<'obj> !Sync for Object<'obj>

§

impl<'obj> Unpin for Object<'obj>

§

impl<'obj> UnwindSafe for Object<'obj>

Blanket Implementations§

Source§

impl<T> Any for T
where T: 'static + ?Sized,

Source§

fn type_id(&self) -> TypeId

Gets the TypeId of self. Read more
Source§

impl<T> Borrow<T> for T
where T: ?Sized,

Source§

fn borrow(&self) -> &T

Immutably borrows from an owned value. Read more
Source§

impl<T> BorrowMut<T> for T
where T: ?Sized,

Source§

fn borrow_mut(&mut self) -> &mut T

Mutably borrows from an owned value. Read more
Source§

impl<T> From<T> for T

Source§

fn from(t: T) -> T

Returns the argument unchanged.

Source§

impl<T, U> Into<U> for T
where U: From<T>,

Source§

fn into(self) -> U

Calls U::from(self).

That is, this conversion is whatever the implementation of From<T> for U chooses to do.

Source§

impl<T, U> TryFrom<U> for T
where U: Into<T>,

Source§

type Error = Infallible

The type returned in the event of a conversion error.
Source§

fn try_from(value: U) -> Result<T, <T as TryFrom<U>>::Error>

Performs the conversion.
Source§

impl<T, U> TryInto<U> for T
where U: TryFrom<T>,

Source§

type Error = <U as TryFrom<T>>::Error

The type returned in the event of a conversion error.
Source§

fn try_into(self) -> Result<U, <U as TryFrom<T>>::Error>

Performs the conversion.