Skip to main content

luaur_analysis/methods/
property_create.rs

1use 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}