double[small] 01
(string[dataset] string[datafile] i0 int32[date] i0)?
Y2
- (int32[x22] i0 01?)?
+ (int32[x22] i0 bool[x25]?)?
```
`small` is a small real number. In the corpus, it overwhelmingly
`x22` is usually 0 or 2000000.
-A writer may safely use 4 for `x21` and omit `x22` and the other
-optional bytes at the end.
+`x25` is usually `01`.
+
+A writer may safely use 4 for `x21` and omit `x22`, `x25`, and the
+other optional bytes at the end.
### Encoding
endian: binrw::Endian,
args: Self::Args<'_>,
) -> BinResult<Self> {
- let start = reader.stream_position()?;
let count = u32::read_options(reader, endian, ())? as u64;
+ let start = reader.stream_position()?;
let end = start + count;
let mut inner = reader.take_seek(count);
let result = <T>::read_options(&mut inner, Endian::Little, args)?;
let pos = inner.stream_position()?;
- if pos < end {
+ if pos != end {
let consumed = pos - start;
return Err(binrw::Error::Custom {
pos,
_x22: i32,
#[br(temp, assert(_zero == 0))]
_zero: i32,
- #[br(temp)]
- _one: Optional<One>,
+ #[br(temp, assert(_x25.is_none_or(|x25| x25 == 0 || x25 == 1)))]
+ _x25: Optional<u8>,
}
#[binread]