Conversation
maxscherbakov
left a comment
There was a problem hiding this comment.
Это очень безопасный код. В рамках исследования некоторые проверки можно было бы убрать, но для разработчика отлично.
| Err(_) => { | ||
| panic!("Chunk is too small (Chunk size should be at least three bytes)") | ||
| } |
There was a problem hiding this comment.
Как я и говорил мы можем не предполагать что у нас чанки длинной меньше 3 байт. За эту часть отвечает CDC алгоритм.
| @@ -0,0 +1,52 @@ | |||
| use thiserror::Error; | |||
There was a problem hiding this comment.
Весь этот файл - очень круто.
src/encoder/zdelta_encoder.rs
Outdated
| let mut previous_match_offset: Option<i16> = None; | ||
| let mut bit_vec_delta_code = BitVec::new(); | ||
|
|
||
| let mut i : PositionInChunk = 0; |
There was a problem hiding this comment.
А вот это не очень. Лучше назвать переменную говорящим именем. В целом PositionInChunk это простой usize лучше так не делать. В отдельный тип лучше выносить какие-то сложные, длинные или трудночитаемые типы.
src/decoder/zdelta_decoder.rs
Outdated
| let data_to_decode = if self.huffman_tree.is_some() { | ||
| let decoded = self.huffman_to_raw(delta_code); |
There was a problem hiding this comment.
Насколько я понял huffman_to_raw() уже включает проверку is_some() или тут какой-то принципиально важный кусок алгоритма?
src/decoder/zdelta_decoder.rs
Outdated
| delta_code.to_vec() | ||
| }; | ||
|
|
||
| let mut i = 0; |
There was a problem hiding this comment.
Тут есть споры, но я за то чтобы дописывать имена переменных даже для индексов.
No description provided.