}
}
+ /// Add a byte array to a JSON array encoded as hex.
+ pub fn append_hex(&mut self, val: &[u8]) -> Result<&mut Self, JsonError> {
+ match self.current_state() {
+ State::ArrayFirst => {
+ self.buf.push('"');
+ for i in 0..val.len() {
+ self.buf.push(HEX[(val[i] >> 4) as usize] as char);
+ self.buf.push(HEX[(val[i] & 0xf) as usize] as char);
+ }
+ self.buf.push('"');
+ self.set_state(State::ArrayNth);
+ Ok(self)
+ }
+ State::ArrayNth => {
+ self.buf.push(',');
+ self.buf.push('"');
+ for i in 0..val.len() {
+ self.buf.push(HEX[(val[i] >> 4) as usize] as char);
+ self.buf.push(HEX[(val[i] & 0xf) as usize] as char);
+ }
+ self.buf.push('"');
+ Ok(self)
+ }
+ _ => {
+ debug_validate_fail!("invalid state");
+ Err(JsonError::InvalidState)
+ }
+ }
+ }
+
/// Add an unsigned integer to an array.
pub fn append_uint(&mut self, val: u64) -> Result<&mut Self, JsonError> {
match self.current_state() {