luaur_analysis/methods/
property_create.rs1use crate::records::property_type::Property;
2use crate::type_aliases::type_id::TypeId;
3
4impl Property {
5 pub fn create(read: Option<TypeId>, write: Option<TypeId>) -> Self {
6 if let Some(read_ty) = read {
7 if let Some(write_ty) = write {
8 return Property::rw_type_id_type_id(read_ty, write_ty);
9 } else {
10 return Property::readonly(read_ty);
11 }
12 }
13
14 if let Some(write_ty) = write {
15 return Property::writeonly(write_ty);
16 }
17
18 luaur_common::LUAU_ASSERT!(read.is_some() && write.is_some());
19 Property::rw_type_id_type_id(read.unwrap(), write.unwrap())
20 }
21}