pub fn decode_string(buf: &[u8]) -> Option<(&str, usize)>
Decode a string, returns (str slice, bytes consumed)