The size attribute is currently only used when field offsets are used. The attribute should assert that the read position is exactly start_pos+size, where start_pos is the position of the reader at the start of the struct