bebyte
Version:
Lightweight library for reading and writing unsigned integers (UInt) from 1 to 64 bits in Big Endian format. Supports precise binary serialization with byte-level control.
2 lines • 6.22 kB
JavaScript
var e=class{constructor(){this._offset=0}get offset(){return this._offset}set offset(f){this._offset=f}};var s=class extends e{constructor(){super(...arguments);this.buffer=[]}i1(i,t=!1){t||this.validateBitLength(i,1),this.i8(i,!0)}i2(i,t=!1){t||this.validateBitLength(i,2),this.i8(i,!0)}i3(i,t=!1){t||this.validateBitLength(i,3),this.i8(i,!0)}i4(i,t=!1){t||this.validateBitLength(i,4),this.i8(i,!0)}i5(i,t=!1){t||this.validateBitLength(i,5),this.i8(i,!0)}i6(i,t=!1){t||this.validateBitLength(i,6),this.i8(i,!0)}i7(i,t=!1){t||this.validateBitLength(i,7),this.i8(i,!0)}i8(i,t=!1){t||this.validateBitLength(i,8),this.buffer.push(["setUint8",i,this.offset]),this.offset+=1}i9(i,t=!1){t||this.validateBitLength(i,9),this.i16(i,!0)}i10(i,t=!1){t||this.validateBitLength(i,10),this.i16(i,!0)}i11(i,t=!1){t||this.validateBitLength(i,11),this.i16(i,!0)}i12(i,t=!1){t||this.validateBitLength(i,12),this.i16(i,!0)}i13(i,t=!1){t||this.validateBitLength(i,13),this.i16(i,!0)}i14(i,t=!1){t||this.validateBitLength(i,14),this.i16(i,!0)}i15(i,t=!1){t||this.validateBitLength(i,15),this.i16(i,!0)}i16(i,t=!1){t||this.validateBitLength(i,16),this.buffer.push(["setUint16",i,this.offset]),this.offset+=2}i17(i,t=!1){t||this.validateBitLength(i,17),this.i24(i,!0)}i18(i,t=!1){t||this.validateBitLength(i,18),this.i24(i,!0)}i19(i,t=!1){t||this.validateBitLength(i,19),this.i24(i,!0)}i20(i,t=!1){t||this.validateBitLength(i,20),this.i24(i,!0)}i21(i,t=!1){t||this.validateBitLength(i,21),this.i24(i,!0)}i22(i,t=!1){t||this.validateBitLength(i,22),this.i24(i,!0)}i23(i,t=!1){t||this.validateBitLength(i,23),this.i24(i,!0)}i24(i,t=!1){t||this.validateBitLength(i,24),this.i8(i>>16&255,!0),this.i8(i>>8&255,!0),this.i8(i&255,!0)}i25(i,t=!1){t||this.validateBitLength(i,25),this.i32(i,!0)}i26(i,t=!1){t||this.validateBitLength(i,26),this.i32(i,!0)}i27(i,t=!1){t||this.validateBitLength(i,27),this.i32(i,!0)}i28(i,t=!1){t||this.validateBitLength(i,28),this.i32(i,!0)}i29(i,t=!1){t||this.validateBitLength(i,29),this.i32(i,!0)}i30(i,t=!1){t||this.validateBitLength(i,30),this.i32(i,!0)}i31(i,t=!1){t||this.validateBitLength(i,31),this.i32(i,!0)}i32(i,t=!1){t||this.validateBitLength(i,32),this.buffer.push(["setUint32",i,this.offset]),this.offset+=4}i33(i,t=!1){t||this.validateBitLength(i,33),this.i40(i,!0)}i34(i,t=!1){t||this.validateBitLength(i,34),this.i40(i,!0)}i35(i,t=!1){t||this.validateBitLength(i,35),this.i40(i,!0)}i36(i,t=!1){t||this.validateBitLength(i,36),this.i40(i,!0)}i37(i,t=!1){t||this.validateBitLength(i,37),this.i40(i,!0)}i38(i,t=!1){t||this.validateBitLength(i,38),this.i40(i,!0)}i39(i,t=!1){t||this.validateBitLength(i,39),this.i40(i,!0)}i40(i,t=!1){typeof i!="bigint"&&(i=BigInt(i)),t||this.validateBitLength(i,40),this.i8(Number(i>>32n&0xFFn),!0),this.i8(Number(i>>24n&0xFFn),!0),this.i8(Number(i>>16n&0xFFn),!0),this.i8(Number(i>>8n&0xFFn),!0),this.i8(Number(i&0xFFn),!0)}i41(i,t=!1){typeof i!="bigint"&&(i=BigInt(i)),t||this.validateBitLength(i,41),this.i48(i,!0)}i42(i,t=!1){typeof i!="bigint"&&(i=BigInt(i)),t||this.validateBitLength(i,42),this.i48(i,!0)}i43(i,t=!1){typeof i!="bigint"&&(i=BigInt(i)),t||this.validateBitLength(i,43),this.i48(i,!0)}i44(i,t=!1){typeof i!="bigint"&&(i=BigInt(i)),t||this.validateBitLength(i,44),this.i48(i,!0)}i45(i,t=!1){typeof i!="bigint"&&(i=BigInt(i)),t||this.validateBitLength(i,45),this.i48(i,!0)}i46(i,t=!1){typeof i!="bigint"&&(i=BigInt(i)),t||this.validateBitLength(i,46),this.i48(i,!0)}i47(i,t=!1){typeof i!="bigint"&&(i=BigInt(i)),t||this.validateBitLength(i,47),this.i48(i,!0)}i48(i,t=!1){typeof i!="bigint"&&(i=BigInt(i)),t||this.validateBitLength(i,48),this.i8(Number(i>>40n&0xFFn)),this.i40(i,!0)}i49(i,t=!1){typeof i!="bigint"&&(i=BigInt(i)),t||this.validateBitLength(i,49),this.i56(i,!0)}i50(i,t=!1){typeof i!="bigint"&&(i=BigInt(i)),t||this.validateBitLength(i,50),this.i56(i,!0)}i51(i,t=!1){typeof i!="bigint"&&(i=BigInt(i)),t||this.validateBitLength(i,51),this.i56(i,!0)}i52(i,t=!1){typeof i!="bigint"&&(i=BigInt(i)),t||this.validateBitLength(i,52),this.i56(i,!0)}i53(i,t=!1){t||this.validateBitLength(i,53),this.i56(i,!0)}i54(i,t=!1){t||this.validateBitLength(i,54),this.i56(i,!0)}i55(i,t=!1){t||this.validateBitLength(i,55),this.i56(i,!0)}i56(i,t=!1){t||this.validateBitLength(i,56),this.i8(Number(i>>48n&0xFFn)),this.i48(i,!0)}i57(i,t=!1){t||this.validateBitLength(i,57),this.i64(i,!0)}i58(i,t=!1){t||this.validateBitLength(i,58),this.i64(i,!0)}i59(i,t=!1){t||this.validateBitLength(i,59),this.i64(i,!0)}i60(i,t=!1){t||this.validateBitLength(i,60),this.i64(i,!0)}i61(i,t=!1){t||this.validateBitLength(i,61),this.i64(i,!0)}i62(i,t=!1){t||this.validateBitLength(i,62),this.i64(i,!0)}i63(i,t=!1){t||this.validateBitLength(i,63),this.i64(i,!0)}i64(i,t=!1){t||this.validateBitLength(i,64),this.buffer.push(["setBigUint64",i,this.offset]),this.offset+=8}write(i){i.forEach(t=>this.i8(t))}toUint8Array(){let i=new Uint8Array(this.offset);if(this.offset==0)return i;let t=new DataView(i.buffer);for(;this.buffer.length>0;){let[a,h,b]=this.buffer.shift();switch(a){case"setUint8":t.setUint8(b,h);break;case"setUint16":t.setUint16(b,h,!1);break;case"setUint32":t.setUint32(b,h,!1);break;case"setBigUint64":t.setBigUint64(b,h,!1);break}}return i}validateBitLength(i,t){typeof i!="bigint"&&(i=BigInt(i));let a=(1n<<BigInt(t))-1n;if(i<0||i>a)throw new Error(`Illegal value. ${i} is out of Uint${t}`)}};var n=class extends e{constructor(i){super();this.buffer=i;this.view=new DataView(i.buffer)}i8(){return this.view.getUint8(this.offset++)}i16(){let i=this.offset;return this.offset+=2,this.view.getUint16(i,!1)}i24(){return this.i8()<<16|this.i8()<<8|this.i8()}i32(){let i=this.offset;return this.offset+=4,this.view.getUint32(i,!1)}i40(){return BigInt(this.i8())<<32n|BigInt(this.i8())<<24n|BigInt(this.i8())<<16n|BigInt(this.i8())<<8n|BigInt(this.i8())}i48(){return BigInt(this.i8())<<40n|this.i40()}i56(){return BigInt(this.i8())<<48n|this.i48()}i64(){let i=this.offset;return this.offset+=8,this.view.getBigUint64(i,!1)}read(i){return this.buffer.slice(this.offset,this.offset+=i)}readRemaining(){return this.read(this.buffer.length)}toUint8Array(){return this.buffer}};var u={writer:()=>new s,reader:r=>new n(r)},d=u;export{d as default};
//# sourceMappingURL=index.mjs.map