summaryrefslogtreecommitdiffstats
path: root/src/js/biditrie.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/js/biditrie.js')
-rw-r--r--src/js/biditrie.js31
1 files changed, 8 insertions, 23 deletions
diff --git a/src/js/biditrie.js b/src/js/biditrie.js
index d0f64ee..1329316 100644
--- a/src/js/biditrie.js
+++ b/src/js/biditrie.js
@@ -576,34 +576,19 @@ class BidiTrieContainer {
};
}
- serialize(encoder) {
- if ( encoder instanceof Object ) {
- return encoder.encode(
- this.buf32.buffer,
- this.buf32[CHAR1_SLOT]
- );
- }
- return Array.from(
- new Uint32Array(
- this.buf32.buffer,
- 0,
- this.buf32[CHAR1_SLOT] + 3 >>> 2
- )
+ toSelfie() {
+ return this.buf32.subarray(
+ 0,
+ this.buf32[CHAR1_SLOT] + 3 >>> 2
);
}
- unserialize(selfie, decoder) {
- const shouldDecode = typeof selfie === 'string';
- let byteLength = shouldDecode
- ? decoder.decodeSize(selfie)
- : selfie.length << 2;
+ fromSelfie(selfie) {
+ if ( selfie instanceof Uint32Array === false ) { return false; }
+ let byteLength = selfie.length << 2;
if ( byteLength === 0 ) { return false; }
this.reallocateBuf(byteLength);
- if ( shouldDecode ) {
- decoder.decode(selfie, this.buf8.buffer);
- } else {
- this.buf32.set(selfie);
- }
+ this.buf32.set(selfie);
return true;
}