mirror of
https://github.com/rust-lang/rust.git
synced 2025-06-06 12:18:33 +00:00

The signed LEB128 decoding function used a hardcoded constant of 64 instead of the number of bits in the type of integer being decoded, which resulted in incorrect results for some inputs. Fix this, make the decoding more consistent with the unsigned version, and increase the LEB128 encoding and decoding test coverage.
35 lines
839 B
Rust
35 lines
839 B
Rust
//! Support code for encoding and decoding types.
|
|
|
|
/*
|
|
Core encoding and decoding interfaces.
|
|
*/
|
|
|
|
#![doc(
|
|
html_root_url = "https://doc.rust-lang.org/nightly/nightly-rustc/",
|
|
html_playground_url = "https://play.rust-lang.org/",
|
|
test(attr(allow(unused_variables), deny(warnings)))
|
|
)]
|
|
#![feature(box_syntax)]
|
|
#![feature(never_type)]
|
|
#![feature(nll)]
|
|
#![feature(associated_type_bounds)]
|
|
#![cfg_attr(bootstrap, feature(min_const_generics))]
|
|
#![feature(min_specialization)]
|
|
#![feature(vec_spare_capacity)]
|
|
#![feature(core_intrinsics)]
|
|
#![feature(int_bits_const)]
|
|
#![feature(maybe_uninit_slice)]
|
|
#![feature(new_uninit)]
|
|
#![cfg_attr(test, feature(test))]
|
|
#![allow(rustc::internal)]
|
|
|
|
pub use self::serialize::{Decodable, Decoder, Encodable, Encoder};
|
|
|
|
mod collection_impls;
|
|
mod serialize;
|
|
|
|
pub mod json;
|
|
|
|
pub mod leb128;
|
|
pub mod opaque;
|