IMO it's a problem that the length of the data is not somehow let known to the user. Since `byte_length != string_length` users may end up with cryptic errors that don't understand this.