SmashMUGENWeb/Public/ecma/Models/BinaryStructureModel.ecma.js
2026-07-20 07:23:37 +02:00

65 lines
1.6 KiB
JavaScript

"use strict";
import {Common} from "http://localhost:18000/Public/ecma/Utils/Common.ecma.js";
import {Check} from "http://localhost:18000/Public/ecma/Utils/Checks.ecma.js";
/**
* @class BinaryStructureModel
* @constructor
* @param {!string} type
* @param {!string} name
* @param {!number} from
* @param {?number} size
* @param {!Array.<BinaryStructureModel>} [childs = []]
* @returns {void}
* @access public
* @static
*/
export const BinaryStructureModel = (function(){
/**
* @constructs BinaryStructureModel
* @param {!string} type
* @param {!string} name
* @param {!number} from
* @param {?number} size
* @param {!Array.<BinaryStructureModel>} [childs = []]
* @returns {void}
* @access private
* @static
*/
const BinaryStructureModel = function(type, name, from, size, childs = []){
/** @type {BinaryStructureModel} */
const self = this;
/** @type {string} */
this.name = name;
/** @type {string} */
this.type = type;
/** @type {number} */
this.from = from;
/** @type {number|null} */
this.size = null;
/** @type {Array.<BinaryStructureModel>} */
this.childs = childs || [];
/** @type {number|null} */
this.next = null;
/**
* @returns {void}
* @access private
*/
const constructor = () => {
if(Check.is_array(size))
self.next = size[0];
else if(Check.is_number(size))
self.size = size;
};
constructor();
};
return BinaryStructureModel;
})();