feat(README, filledDataView, sizedDataView)

This commit is contained in:
2025-08-08 12:32:55 +03:00
parent c5c0c17db2
commit c3e0e286a8
17 changed files with 322 additions and 30 deletions

View File

@ -1,6 +1,38 @@
import { describe, test, expect } from 'vitest'
import { expectDataViewEqual, filledDataView, sizedDataView } from '.'
import { isHeadless, parse, serialize, sizeof, sizeofHead } from '../src'
import { expectDataViewEqual } from '.'
import { filledDataView, sizedDataView } from '../src'
import { Int, isHeadless, parse, serialize, sizeof, sizeofHead, Struct } from '../src'
describe('README', () => {
test('header', () => {
const User = Struct({
id: Int(32, 'unsigned'),
name: String,
age: Number,
array: [Array, Boolean],
raw_data: DataView,
})
const user = {
id: 1,
name: 'john',
age: 20,
array: [true, false],
raw_data: filledDataView([0x00, 0x00, 0x00, 0xFF]),
}
const dv = sizedDataView(sizeof(user, User))
serialize(dv, user, User)
const user_copy = parse(dv, User)
expect(user_copy).toEqual(user)
expectDataViewEqual(user_copy.raw_data, user.raw_data)
})
test('unknown sizeof', () => {
expect(() => sizeof(Array, Boolean)).toThrowError('unknown size of Array,Boolean')
})
})
describe('serialize', () => {
test('Boolean', () => {