fix(struct): fix incorrect __NO_SIDE_EFFECTS__ annotation

This commit is contained in:
Simon Chan 2025-03-14 05:42:28 +08:00
parent 1de86c354a
commit 46e78401a4
No known key found for this signature in database
GPG key ID: A8B69F750B9BCEDD
9 changed files with 34 additions and 33 deletions

View file

@ -1,3 +1,4 @@
/* #__NO_SIDE_EFFECTS__ */
export function getInt16LittleEndian( export function getInt16LittleEndian(
buffer: Uint8Array, buffer: Uint8Array,
offset: number, offset: number,
@ -5,10 +6,12 @@ export function getInt16LittleEndian(
return ((buffer[offset]! | (buffer[offset + 1]! << 8)) << 16) >> 16; return ((buffer[offset]! | (buffer[offset + 1]! << 8)) << 16) >> 16;
} }
/* #__NO_SIDE_EFFECTS__ */
export function getInt16BigEndian(buffer: Uint8Array, offset: number): number { export function getInt16BigEndian(buffer: Uint8Array, offset: number): number {
return (((buffer[offset]! << 8) | buffer[offset + 1]!) << 16) >> 16; return (((buffer[offset]! << 8) | buffer[offset + 1]!) << 16) >> 16;
} }
/* #__NO_SIDE_EFFECTS__ */
export function getInt16( export function getInt16(
buffer: Uint8Array, buffer: Uint8Array,
offset: number, offset: number,
@ -19,6 +22,7 @@ export function getInt16(
: (((buffer[offset]! << 8) | buffer[offset + 1]!) << 16) >> 16; : (((buffer[offset]! << 8) | buffer[offset + 1]!) << 16) >> 16;
} }
/* #__NO_SIDE_EFFECTS__ */
export function setInt16LittleEndian( export function setInt16LittleEndian(
buffer: Uint8Array, buffer: Uint8Array,
offset: number, offset: number,

View file

@ -1,3 +1,4 @@
/* #__NO_SIDE_EFFECTS__ */
export function getInt32LittleEndian( export function getInt32LittleEndian(
buffer: Uint8Array, buffer: Uint8Array,
offset: number, offset: number,
@ -10,6 +11,7 @@ export function getInt32LittleEndian(
); );
} }
/* #__NO_SIDE_EFFECTS__ */
export function getInt32BigEndian(buffer: Uint8Array, offset: number): number { export function getInt32BigEndian(buffer: Uint8Array, offset: number): number {
return ( return (
(buffer[offset]! << 24) | (buffer[offset]! << 24) |
@ -19,6 +21,7 @@ export function getInt32BigEndian(buffer: Uint8Array, offset: number): number {
); );
} }
/* #__NO_SIDE_EFFECTS__ */
export function getInt32( export function getInt32(
buffer: Uint8Array, buffer: Uint8Array,
offset: number, offset: number,

View file

@ -1,3 +1,4 @@
/* #__NO_SIDE_EFFECTS__ */
export function getInt64LittleEndian( export function getInt64LittleEndian(
buffer: Uint8Array, buffer: Uint8Array,
offset: number, offset: number,
@ -14,6 +15,7 @@ export function getInt64LittleEndian(
); );
} }
/* #__NO_SIDE_EFFECTS__ */
export function getInt64BigEndian(buffer: Uint8Array, offset: number): bigint { export function getInt64BigEndian(buffer: Uint8Array, offset: number): bigint {
return ( return (
(BigInt(buffer[offset]! << 24) << 32n) | (BigInt(buffer[offset]! << 24) << 32n) |
@ -27,6 +29,7 @@ export function getInt64BigEndian(buffer: Uint8Array, offset: number): bigint {
); );
} }
/* #__NO_SIDE_EFFECTS__ */
export function getInt64( export function getInt64(
buffer: Uint8Array, buffer: Uint8Array,
offset: number, offset: number,

View file

@ -1,3 +1,4 @@
/* #__NO_SIDE_EFFECTS__ */
export function getInt8(buffer: Uint8Array, offset: number): number { export function getInt8(buffer: Uint8Array, offset: number): number {
return (buffer[offset]! << 24) >> 24; return (buffer[offset]! << 24) >> 24;
} }

View file

@ -1,3 +1,4 @@
/* #__NO_SIDE_EFFECTS__ */
export function getUint16LittleEndian( export function getUint16LittleEndian(
buffer: Uint8Array, buffer: Uint8Array,
offset: number, offset: number,
@ -5,10 +6,12 @@ export function getUint16LittleEndian(
return buffer[offset]! | (buffer[offset + 1]! << 8); return buffer[offset]! | (buffer[offset + 1]! << 8);
} }
/* #__NO_SIDE_EFFECTS__ */
export function getUint16BigEndian(buffer: Uint8Array, offset: number): number { export function getUint16BigEndian(buffer: Uint8Array, offset: number): number {
return (buffer[offset]! << 8) | buffer[offset + 1]!; return (buffer[offset]! << 8) | buffer[offset + 1]!;
} }
/* #__NO_SIDE_EFFECTS__ */
export function getUint16( export function getUint16(
buffer: Uint8Array, buffer: Uint8Array,
offset: number, offset: number,

View file

@ -1,3 +1,4 @@
/* #__NO_SIDE_EFFECTS__ */
export function getUint32LittleEndian( export function getUint32LittleEndian(
buffer: Uint8Array, buffer: Uint8Array,
offset: number, offset: number,
@ -11,6 +12,7 @@ export function getUint32LittleEndian(
); );
} }
/* #__NO_SIDE_EFFECTS__ */
export function getUint32BigEndian(buffer: Uint8Array, offset: number): number { export function getUint32BigEndian(buffer: Uint8Array, offset: number): number {
return ( return (
((buffer[offset]! << 24) | ((buffer[offset]! << 24) |
@ -21,6 +23,7 @@ export function getUint32BigEndian(buffer: Uint8Array, offset: number): number {
); );
} }
/* #__NO_SIDE_EFFECTS__ */
export function getUint32( export function getUint32(
buffer: Uint8Array, buffer: Uint8Array,
offset: number, offset: number,

View file

@ -23,19 +23,18 @@ export interface NumberField<T> extends Field<T, never, never> {
/* #__NO_SIDE_EFFECTS__ */ /* #__NO_SIDE_EFFECTS__ */
function factory<T>( function factory<T>(
fn: NumberField<T>,
size: number, size: number,
serialize: Field<T, never, never>["serialize"], serialize: Field<T, never, never>["serialize"],
deserialize: Field<T, never, never>["deserialize"], deserialize: Field<T, never, never>["deserialize"],
) { ) {
const fn: NumberField<T> = (() => fn) as never;
fn.size = size; fn.size = size;
fn.serialize = serialize; fn.serialize = serialize;
fn.deserialize = deserialize; fn.deserialize = deserialize;
return fn;
} }
export const u8: NumberField<number> = (() => u8) as never; export const u8: NumberField<number> = factory(
factory(
u8,
1, 1,
(value, { buffer, index }) => { (value, { buffer, index }) => {
buffer[index] = value; buffer[index] = value;
@ -46,9 +45,7 @@ factory(
}), }),
); );
export const s8: NumberField<number> = (() => s8) as never; export const s8: NumberField<number> = factory(
factory(
s8,
1, 1,
(value, { buffer, index }) => { (value, { buffer, index }) => {
buffer[index] = value; buffer[index] = value;
@ -59,9 +56,7 @@ factory(
}), }),
); );
export const u16: NumberField<number> = (() => u16) as never; export const u16: NumberField<number> = factory(
factory(
u16,
2, 2,
(value, { buffer, index, littleEndian }) => { (value, { buffer, index, littleEndian }) => {
setUint16(buffer, index, value, littleEndian); setUint16(buffer, index, value, littleEndian);
@ -72,9 +67,7 @@ factory(
}), }),
); );
export const s16: NumberField<number> = (() => u16) as never; export const s16: NumberField<number> = factory(
factory(
s16,
2, 2,
(value, { buffer, index, littleEndian }) => { (value, { buffer, index, littleEndian }) => {
setInt16(buffer, index, value, littleEndian); setInt16(buffer, index, value, littleEndian);
@ -85,9 +78,7 @@ factory(
}), }),
); );
export const u32: NumberField<number> = (() => u32) as never; export const u32: NumberField<number> = factory(
factory(
u32,
4, 4,
(value, { buffer, index, littleEndian }) => { (value, { buffer, index, littleEndian }) => {
setUint32(buffer, index, value, littleEndian); setUint32(buffer, index, value, littleEndian);
@ -98,9 +89,7 @@ factory(
}), }),
); );
export const s32: NumberField<number> = (() => s32) as never; export const s32: NumberField<number> = factory(
factory(
s32,
4, 4,
(value, { buffer, index, littleEndian }) => { (value, { buffer, index, littleEndian }) => {
setInt32(buffer, index, value, littleEndian); setInt32(buffer, index, value, littleEndian);
@ -111,9 +100,7 @@ factory(
}), }),
); );
export const u64: NumberField<bigint> = (() => u64) as never; export const u64: NumberField<bigint> = factory(
factory(
u64,
8, 8,
(value, { buffer, index, littleEndian }) => { (value, { buffer, index, littleEndian }) => {
setUint64(buffer, index, value, littleEndian); setUint64(buffer, index, value, littleEndian);
@ -124,9 +111,7 @@ factory(
}), }),
); );
export const s64: NumberField<bigint> = (() => u64) as never; export const s64: NumberField<bigint> = factory(
factory(
s64,
8, 8,
(value, { buffer, index, littleEndian }) => { (value, { buffer, index, littleEndian }) => {
setInt64(buffer, index, value, littleEndian); setInt64(buffer, index, value, littleEndian);

View file

@ -5,7 +5,7 @@
"description": "", "description": "",
"main": "index.js", "main": "index.js",
"scripts": { "scripts": {
"start": "rollup -c rollup.config.ts --configPlugin @rollup/plugin-typescript" "start": "rollup -c rollup.config.ts --configPlugin @rollup/plugin-typescript --watch"
}, },
"keywords": [], "keywords": [],
"author": "", "author": "",

View file

@ -1,5 +1,4 @@
import node from "@rollup/plugin-node-resolve"; import node from "@rollup/plugin-node-resolve";
import terser from "@rollup/plugin-terser";
import typescript from "@rollup/plugin-typescript"; import typescript from "@rollup/plugin-typescript";
import { defineConfig } from "rollup"; import { defineConfig } from "rollup";
@ -14,11 +13,11 @@ export default defineConfig({
plugins: [ plugins: [
typescript(), typescript(),
node(), node(),
terser({ // terser({
module: true, // module: true,
format: { // format: {
beautify: true, // beautify: true,
}, // },
}), // }),
], ],
}); });