https://developers.google.com/protocol-buffers/docs/encoding#varints
(data: &[u8])
| 1898 | |
| 1899 | /// https://developers.google.com/protocol-buffers/docs/encoding#varints |
| 1900 | fn read_varu32(data: &[u8]) -> (u32, usize) { |
| 1901 | let mut n: u32 = 0; |
| 1902 | let mut shift: u32 = 0; |
| 1903 | for (i, &b) in data.iter().enumerate() { |
| 1904 | if b < 0b1000_0000 { |
| 1905 | return (n | ((b as u32) << shift), i + 1); |
| 1906 | } |
| 1907 | n |= ((b as u32) & 0b0111_1111) << shift; |
| 1908 | shift += 7; |
| 1909 | } |
| 1910 | (0, 0) |
| 1911 | } |
| 1912 | |
| 1913 | #[cfg(test)] |
| 1914 | mod tests { |
no test coverage detected