Add checked floating-point byte readers and writers
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 78/100
- Issue type
- Feature
- Clarity
- Clearly specified
- Activity status
- Active
- Domain
- compilers
Research direction
Start with std/bytes/read.wave, std/bytes/write.wave, std/bytes/endian.wave, and std/math/float.wave to follow the existing checked integer operations and bit-preserving float conversions. Add BE/LE checked f32/f64 offset operations, then verify round trips, unaligned offsets, invalid inputs, and insufficient space at O0 and O2, including NaN payloads and signed zero.
Written by the indexing model from the issue text.
Description
Motivation
Checked byte readers/writers support integers only, although std::math::float already supplies bit-preserving f32/f64 conversions. Binary protocols currently require users to compose these operations themselves.
Starting points: std/bytes/read.wave, std/bytes/write.wave, std/bytes/endian.wave, std/math/float.wave.
Scope
Add BE/LE checked offset reads and writes for f32/f64. Use bit conversion, not numeric arithmetic, to preserve payloads and signed zero. Cursor convenience methods are outside this task.
Difficulty: easy.
Completion criteria
- Round-trip ±0, finite values, subnormals, infinities and NaN payload bits.
- Support unaligned offsets through existing byte-oriented primitives.
- Preserve outputs/buffers on invalid input or insufficient space.
- Test both byte orders at O0/O2.
- Dominant language
- Rust
- Stars
- 56
- Forks
- 21
- Avg merge
- 2h 37m
- Merged PRs (30d)
- 57
Getting set up
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from wavefnd/Wave
-
enhancement good first issue needs testing
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
enhancement good first issue needs testing
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
Maintainers usually reply within 1 day
-
enhancement good first issue needs testing
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
Maintainers usually reply within 1 day
-
enhancement good first issue needs testing
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
-
enhancement good first issue needs testing
Difficulty 2/5 1-3 hours Newbie friendliness 75/100
Maintainers usually reply within 1 day
Similar issues
-
`categorize_command` has no `uv` arm, so every `rtk uv …` row counts as `other` in the ecosystem mixOpenarea:api bug good first issue priority:low
Difficulty 1/5 Under an hour Newbie friendliness 92/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 92/100
Maintainers usually reply within 1 day
-
area/cli kind/bug
Difficulty 2/5 1-3 hours Newbie friendliness 90/100
Maintainers usually reply within 1 day
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
good first issue open-endedness: low type: new feature
Difficulty 2/5 1-3 hours Newbie friendliness 72/100