(values: &[i64])
| 744 | } |
| 745 | |
| 746 | fn encode_delta_varints_write(values: &[i64]) -> Vec<u8> { |
| 747 | if values.is_empty() { |
| 748 | return Vec::new(); |
| 749 | } |
| 750 | let mut encoded = Vec::new(); |
| 751 | let mut previous = 0_i64; |
| 752 | for (idx, &value) in values.iter().enumerate() { |
| 753 | let delta = if idx == 0 { value } else { value - previous }; |
| 754 | previous = value; |
| 755 | encode_varint(delta, &mut encoded); |
| 756 | } |
| 757 | encoded |
| 758 | } |
| 759 | |
| 760 | fn encode_varint(value: i64, out: &mut Vec<u8>) { |
| 761 | let mut remaining = ((value << 1) ^ (value >> 63)) as u64; |