@hazae41/box
Version:
Rust-like Box and similar objects for TypeScript
1 lines • 1.31 kB
Source Map (JSON)
{"version":3,"file":"index.cjs","sources":["../../../../src/mods/cell/index.ts"],"sourcesContent":["/**\n * An interior mutable reference\n */\nexport class Cell<T> {\n\n /**\n * A mutable reference\n * @param value \n */\n constructor(\n public value: T\n ) { }\n\n [Symbol.dispose](this: Cell<Disposable>) {\n this.value[Symbol.dispose]()\n }\n\n async [Symbol.asyncDispose](this: Cell<AsyncDisposable>) {\n await this.value[Symbol.asyncDispose]()\n }\n\n get() {\n return this.value\n }\n\n set(value: T) {\n this.value = value\n }\n\n getAndSet(value: T) {\n const old = this.value\n this.value = value\n return old\n }\n\n}"],"names":[],"mappings":";;AAAA;;AAEG;MACU,IAAI,CAAA;AAON,IAAA,KAAA,CAAA;AALT;;;AAGG;AACH,IAAA,WAAA,CACS,KAAQ,EAAA;QAAR,IAAK,CAAA,KAAA,GAAL,KAAK,CAAG;KACZ;IAEL,CAAC,MAAM,CAAC,OAAO,CAAC,GAAA;QACd,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAA;KAC7B;AAED,IAAA,OAAO,MAAM,CAAC,YAAY,CAAC,GAAA;QACzB,MAAM,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,YAAY,CAAC,EAAE,CAAA;KACxC;IAED,GAAG,GAAA;QACD,OAAO,IAAI,CAAC,KAAK,CAAA;KAClB;AAED,IAAA,GAAG,CAAC,KAAQ,EAAA;AACV,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;KACnB;AAED,IAAA,SAAS,CAAC,KAAQ,EAAA;AAChB,QAAA,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAA;AACtB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;AAClB,QAAA,OAAO,GAAG,CAAA;KACX;AAEF;;;;"}