Lab 1 - Fixed-width ASCII from slices
Parse symbol, price, and size from a byte row into borrowed/numeric fields.
Before coding: write the lifetime relationship between input bytes and parsed symbol.
Given b"MSFT 00018425000100", split offsets first, then parse each field with explicit error variants.
Pass all malformed-input tests before reading more packet docs.
- Define ParsedQuote with symbol: &str, price: u64, size: u32.
- Reject rows shorter than the full fixed-width layout.
- Use std::str::from_utf8 and decimal parsing only after slicing bounds are checked.
- Happy path parses symbol, price, and size.
- Short row returns an error, never panics.
- Non-UTF8 symbol returns an error.
- Non-digit price returns an error.