The scanner copies the last block of input before analyzing, but many parse functions require the guarantee that input is properly padded. For parsing files this is fine because the logic is hidden from the user. For parsing string inputs this is not the case and the user is required to pass a null-terminated but padded string, which is somewhat of a weird interface. It is possible to return a specialized error code from advance if not enough data is available anymore to guarantee enough padding for vectorized operation and fallback to stricter fallback parsing in that case. For now it's a little too much to pickup for the initial release, but it may be a nice usability improvement for a future release.
The scanner copies the last block of input before analyzing, but many parse functions require the guarantee that input is properly padded. For parsing files this is fine because the logic is hidden from the user. For parsing string inputs this is not the case and the user is required to pass a null-terminated but padded string, which is somewhat of a weird interface. It is possible to return a specialized error code from
advance
if not enough data is available anymore to guarantee enough padding for vectorized operation and fallback to stricter fallback parsing in that case. For now it's a little too much to pickup for the initial release, but it may be a nice usability improvement for a future release.