INNER CODE UNIT · Rust

encode

qaul/qaul.net · rust/libp2p_modules/varint_prefixed_codec/src/lib.rs:46

    fn encode(&mut self, src: Self::Item<'_>, dst: &mut BytesMut) -> Result<(), Self::Error> {
        // check length of package to send and return if package limit is exceeded
        let message_length = src.len();
        if message_length > self.max_message_len_bytes {
            return Err(Error::new(
                ErrorKind::PermissionDenied,
                format!(
                    "message with {message_length} bytes exceeds maximum of {} bytes",
                    self.max_message_len_bytes
                ),
            ));
        }

        // create varint for package length
        let mut uvi_buf = unsigned_varint::encode::usize_buffer();
        let encoded_length = unsigned_varint::encode::usize(message_length, &mut uvi_buf);

        // send varint encoded package length as a prefix

View source record →

📰 Research Paper
Loading…
⏳ Fetching content…