import P from "parsernostrum" import Grammar from "../serialization/Grammar.js" import BooleanEntity from "./BooleanEntity.js" import FunctionReferenceEntity from "./FunctionReferenceEntity.js" import IEntity from "./IEntity.js" import ObjectReferenceEntity from "./ObjectReferenceEntity.js" import StringEntity from "./StringEntity.js" import SymbolEntity from "./SymbolEntity.js" export default class PinTypeEntity extends IEntity { static attributes = { ...super.attributes, PinCategory: StringEntity.withDefault(), PinSubCategory: StringEntity.withDefault(), PinSubCategoryObject: ObjectReferenceEntity, PinSubCategoryMemberReference: FunctionReferenceEntity, ContainerType: SymbolEntity, bIsReference: BooleanEntity, bIsConst: BooleanEntity, bIsWeakPointer: BooleanEntity, bIsUObjectWrapper: BooleanEntity, bSerializeAsSinglePrecisionFloat: BooleanEntity, } static grammar = this.createGrammar() constructor(values = {}) { super(values) /** @type {InstanceType} */ this.PinCategory /** @type {InstanceType} */ this.PinSubCategory /** @type {InstanceType} */ this.PinSubCategoryObject /** @type {InstanceType} */ this.PinSubCategoryMemberReference /** @type {InstanceType} */ this.ContainerType /** @type {InstanceType} */ this.bIsReference /** @type {InstanceType} */ this.bIsConst /** @type {InstanceType} */ this.bIsWeakPointer /** @type {InstanceType} */ this.bIsUObjectWrapper /** @type {InstanceType} */ this.bIsUObjectWrapper /** @type {InstanceType} */ this.bSerializeAsSinglePrecisionFloat } /** @returns {P} */ static createGrammar() { return Grammar.createEntityGrammar(this).label("PinTypeEntity") } /** @param {PinTypeEntity} other */ copyTypeFrom(other) { for (const key of this.keys) { if (other[key] !== undefined) { this[key] = other[key] } } } }