|
|
@ -46,7 +46,7 @@ pub fn parse_log(raw: &Vec<u8>) -> Result<Value> {
|
|
|
|
let mut chunks: Vec<Map<String, Value>> = Vec::new();
|
|
|
|
let mut chunks: Vec<Map<String, Value>> = Vec::new();
|
|
|
|
|
|
|
|
|
|
|
|
while raw.len() > 0 {
|
|
|
|
while raw.len() > 0 {
|
|
|
|
let chunk: Vec<u8> = raw.drain(0..7).collect();
|
|
|
|
let chunk: Vec<u8> = raw.drain(0..8).collect();
|
|
|
|
if chunk.len() != 8 {
|
|
|
|
if chunk.len() != 8 {
|
|
|
|
return Err("chunk size too small".into());
|
|
|
|
return Err("chunk size too small".into());
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -55,7 +55,7 @@ pub fn parse_log(raw: &Vec<u8>) -> Result<Value> {
|
|
|
|
if let Ok((delta, size)) = chunk32(&chunk) {
|
|
|
|
if let Ok((delta, size)) = chunk32(&chunk) {
|
|
|
|
(delta, size)
|
|
|
|
(delta, size)
|
|
|
|
} else {
|
|
|
|
} else {
|
|
|
|
let next_chunk: Vec<u8> = raw.drain(0..3).collect();
|
|
|
|
let next_chunk: Vec<u8> = raw.drain(0..4).collect();
|
|
|
|
if next_chunk.len() != 4 {
|
|
|
|
if next_chunk.len() != 4 {
|
|
|
|
return Err("next_chunk size too small".into());
|
|
|
|
return Err("next_chunk size too small".into());
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -68,7 +68,7 @@ pub fn parse_log(raw: &Vec<u8>) -> Result<Value> {
|
|
|
|
}
|
|
|
|
}
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
let r = Range { start: 0 as usize, end: (size - 1) as usize };
|
|
|
|
let r = Range { start: 0 as usize, end: size as usize };
|
|
|
|
|
|
|
|
|
|
|
|
let text_chunk: Vec<u8> = raw.drain(r).collect();
|
|
|
|
let text_chunk: Vec<u8> = raw.drain(r).collect();
|
|
|
|
if text_chunk.len() != size as usize {
|
|
|
|
if text_chunk.len() != size as usize {
|
|
|
|