Bug 1839799 - Update scroll_derive to 0.11.1. r=emilio,supply-chain-reviewers

Differential Revision: https://phabricator.services.mozilla.com/D181729
This commit is contained in:
Mike Hommey 2023-06-22 20:47:09 +00:00
parent 5e9c82be75
commit 3336e4d96c
7 changed files with 32 additions and 302 deletions

6
Cargo.lock generated
View File

@ -4618,13 +4618,13 @@ dependencies = [
[[package]]
name = "scroll_derive"
version = "0.11.0"
version = "0.11.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "bdbda6ac5cd1321e724fa9cee216f3a61885889b896f073b8f82322789c5250e"
checksum = "1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae"
dependencies = [
"proc-macro2",
"quote",
"syn 1.0.107",
"syn 2.0.18",
]
[[package]]

View File

@ -2543,6 +2543,11 @@ criteria = "safe-to-deploy"
delta = "0.10.5 -> 0.11.0"
notes = "No code changes. Tagged together with its parent crate scroll."
[[audits.scroll_derive]]
who = "Mike Hommey <mh+mozilla@glandium.org>"
criteria = "safe-to-deploy"
delta = "0.11.0 -> 0.11.1"
[[audits.selectors]]
who = "Emilio Cobos Álvarez <emilio@crisal.io>"
criteria = "safe-to-deploy"

View File

@ -1 +1 @@
{"files":{"Cargo.lock":"1c75a1216efdf3c7b4726138eed43fadf9325750c8d01d2358b4cf4ad742f8c1","Cargo.toml":"36cd9b38e6f4ed4bd807208da809d3803af3b134264fd5c90a29a6f064b3b4d9","LICENSE":"afb11426e09da40a1ae4f8fa17ddcc6b6a52d14df04c29bc5bcd06eb8730624d","README.md":"f89c7768454b0d2b9db816afe05db3a4cea1125bef87f08ed3eefd65e9e2b180","examples/main.rs":"dc2f7f6ba45dcba4e6fe7c8ac100df0c101cb091ddd34f7dfc6599e58cc9e9a7","src/lib.rs":"a9cabe3c0b373f352357745b817f188ab841e9445056014dee9cc83c4d167483","tests/tests.rs":"ab4e6955d2e3bedd003b53b8f3423a6fc48424e37218ca989bf7e0debdf3c3f9"},"package":"bdbda6ac5cd1321e724fa9cee216f3a61885889b896f073b8f82322789c5250e"}
{"files":{"Cargo.toml":"9fbb5068c3ffbf2c357f4068f854f439bae4999e04527e2dedc6758fa37a9807","LICENSE":"afb11426e09da40a1ae4f8fa17ddcc6b6a52d14df04c29bc5bcd06eb8730624d","README.md":"f89c7768454b0d2b9db816afe05db3a4cea1125bef87f08ed3eefd65e9e2b180","src/lib.rs":"a9cabe3c0b373f352357745b817f188ab841e9445056014dee9cc83c4d167483"},"package":"1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae"}

View File

@ -1,52 +0,0 @@
# This file is automatically @generated by Cargo.
# It is not intended for manual editing.
[[package]]
name = "proc-macro2"
version = "1.0.24"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "1e0704ee1a7e00d7bb417d0770ea303c1bccbabf0ef1667dae92b5967f5f8a71"
dependencies = [
"unicode-xid",
]
[[package]]
name = "quote"
version = "1.0.8"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "991431c3519a3f36861882da93630ce66b52918dcf1b8e2fd66b397fc96f28df"
dependencies = [
"proc-macro2",
]
[[package]]
name = "scroll"
version = "0.10.2"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "fda28d4b4830b807a8b43f7b0e6b5df875311b3e7621d84577188c175b6ec1ec"
[[package]]
name = "scroll_derive"
version = "0.11.0"
dependencies = [
"proc-macro2",
"quote",
"scroll",
"syn",
]
[[package]]
name = "syn"
version = "1.0.60"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "c700597eca8a5a762beb35753ef6b94df201c81cca676604f547495a0d7f0081"
dependencies = [
"proc-macro2",
"quote",
"unicode-xid",
]
[[package]]
name = "unicode-xid"
version = "0.2.1"
source = "registry+https://github.com/rust-lang/crates.io-index"
checksum = "f7fe0bb3479651439c9112f72b6c505038574c9fbb575ed1bf3b797fa39dd564"

View File

@ -12,17 +12,34 @@
[package]
edition = "2018"
name = "scroll_derive"
version = "0.11.0"
authors = ["m4b <m4b.github.io@gmail.com>", "Ted Mielczarek <ted@mielczarek.org>", "Systemcluster <me@systemcluster.me>"]
version = "0.11.1"
authors = [
"m4b <m4b.github.io@gmail.com>",
"Ted Mielczarek <ted@mielczarek.org>",
"Systemcluster <me@systemcluster.me>",
]
include = [
"src/**/*",
"Cargo.toml",
"LICENSE",
"README.md",
]
description = "A macros 1.1 derive implementation for Pread and Pwrite traits from the scroll crate"
documentation = "https://docs.rs/scroll_derive"
readme = "README.md"
keywords = ["derive", "macros", "pread", "pwrite", "bytes"]
keywords = [
"derive",
"macros",
"pread",
"pwrite",
"bytes",
]
license = "MIT"
repository = "https://github.com/m4b/scroll"
[lib]
proc-macro = true
[dependencies.proc-macro2]
version = "1"
@ -30,6 +47,7 @@ version = "1"
version = "1"
[dependencies.syn]
version = "1"
version = "2"
[dev-dependencies.scroll]
version = "0.10"
version = "0.11"

View File

@ -1,28 +0,0 @@
use scroll_derive::{IOread, IOwrite, Pread, Pwrite, SizeWith};
#[derive(Debug, PartialEq, Pread, Pwrite, IOread, IOwrite, SizeWith)]
#[repr(C)]
struct Data {
id: u32,
timestamp: f64,
arr: [u16; 2],
}
use scroll::{Cread, Pread, Pwrite, LE};
fn main() {
let bytes = [
0xefu8, 0xbe, 0xad, 0xde, 0, 0, 0, 0, 0, 0, 224, 63, 0xad, 0xde, 0xef, 0xbe,
];
let data: Data = bytes.pread_with(0, LE).unwrap();
println!("data: {:?}", &data);
assert_eq!(data.id, 0xdeadbeefu32);
let mut bytes2 = vec![0; ::std::mem::size_of::<Data>()];
bytes2.pwrite_with(data, 0, LE).unwrap();
let data: Data = bytes.pread_with(0, LE).unwrap();
let data2: Data = bytes2.pread_with(0, LE).unwrap();
assert_eq!(data, data2);
let data: Data = bytes.cread_with(0, LE);
assert_eq!(data, data2);
}

View File

@ -1,213 +0,0 @@
use scroll::{Cread, Cwrite, Pread, Pwrite, LE};
use scroll_derive::{IOread, IOwrite, Pread, Pwrite, SizeWith};
use scroll::ctx::SizeWith;
macro_rules! test {
( struct $name:ident { $( $field:ident: $t:ty, )* } ) => {
// check we can exist inside a macro_rules
// https://github.com/m4b/scroll/pull/75
#[derive(Pread, Pwrite)]
pub struct $name {
$( pub $field: $t, )*
}
};
}
test! {
struct Test {
field: [u16; 40],
}
}
#[derive(Debug, PartialEq, Pread, Pwrite)]
struct Data {
id: u32,
timestamp: f64,
}
#[test]
fn test_data() {
let bytes = [0xefu8, 0xbe, 0xad, 0xde, 0, 0, 0, 0, 0, 0, 224, 63];
let data: Data = bytes.pread_with(0, LE).unwrap();
println!("data: {:?}", &data);
assert_eq!(data.id, 0xdeadbeefu32);
assert_eq!(data.timestamp, 0.5f64);
let mut bytes2 = vec![0; ::std::mem::size_of::<Data>()];
bytes2.pwrite_with(data, 0, LE).unwrap();
let data: Data = bytes.pread_with(0, LE).unwrap();
let data2: Data = bytes2.pread_with(0, LE).unwrap();
assert_eq!(data, data2);
}
#[derive(Debug, PartialEq, Pread, Pwrite)]
struct Data2 {
name: [u8; 32],
}
#[test]
fn test_array() {
let bytes = [0u8; 64];
let data: Data2 = bytes.pread_with(0, LE).unwrap();
println!("data: {:?}", &data);
}
#[derive(Debug, PartialEq, Pread, Pwrite, SizeWith)]
struct Data3 {
name: u32,
}
#[test]
fn test_sizewith() {
let bytes = [0u8; 64];
let data: Data3 = bytes.gread_with(&mut 0, LE).unwrap();
println!("data: {:?}", &data);
}
#[derive(Debug, PartialEq, IOread, IOwrite, SizeWith)]
struct Data4 {
name: u32,
j: u16,
arr: [u8; 2],
}
#[test]
fn test_ioread() {
let bytes = [0, 1, 2, 3, 0xde, 0xed, 0xbe, 0xaf];
let data: Data4 = bytes.cread_with(0, LE);
println!("data: {:?}", &data);
assert_eq!(data.name, 50462976);
assert_eq!(data.j, 0xedde);
assert_eq!(data.arr, [0xbe, 0xaf]);
}
#[test]
fn test_iowrite() {
let bytes = [0, 1, 2, 3, 0xde, 0xed, 0xbe, 0xaf];
let data: Data4 = bytes.cread_with(0, LE);
println!("data: {:?}", &data);
assert_eq!(data.name, 50462976);
assert_eq!(data.j, 0xedde);
assert_eq!(data.arr, [0xbe, 0xaf]);
let mut bytes_null = [0u8; 8];
bytes_null.cwrite_with(&data, 0, LE);
println!("bytes_null: {:?}", &bytes_null);
println!("bytes : {:?}", &bytes);
assert_eq!(bytes_null, bytes);
let mut bytes_null = [0u8; 8];
bytes_null.cwrite_with(data, 0, LE);
println!("bytes_null: {:?}", &bytes_null);
println!("bytes : {:?}", &bytes);
assert_eq!(bytes_null, bytes);
}
#[derive(Debug, PartialEq, Pread, SizeWith)]
#[repr(C)]
struct Data5 {
name: u32,
j: u16,
arr1: [u8; 2],
arr2: [u16; 2],
}
#[test]
fn test_pread_arrays() {
let bytes = [0, 1, 2, 3, 0, 0, 0xde, 0xed, 0xad, 0xde, 0xef, 0xbe];
let data: Data5 = bytes.pread_with(0, LE).unwrap();
println!("data: {:?}", &data);
assert_eq!(data.name, 50462976);
assert_eq!(data.arr1, [0xde, 0xed]);
assert_eq!(data.arr2, [0xdead, 0xbeef]);
let offset = &mut 0;
let data: Data5 = bytes.gread_with(offset, LE).unwrap();
println!("data: {:?}", &data);
assert_eq!(data.name, 50462976);
assert_eq!(data.arr1, [0xde, 0xed]);
assert_eq!(data.arr2, [0xdead, 0xbeef]);
assert_eq!(*offset, ::std::mem::size_of::<Data5>());
}
#[derive(Debug, PartialEq, Pread, SizeWith)]
#[repr(C)]
struct Data6 {
id: u32,
name: [u8; 5],
}
#[test]
fn test_array_copy() {
let bytes = [0xde, 0xed, 0xef, 0xbe, 0x68, 0x65, 0x6c, 0x6c, 0x0];
let data: Data6 = bytes.pread_with(0, LE).unwrap();
let name: &str = data.name.pread(0).unwrap();
println!("data: {:?}", &data);
println!("data.name: {:?}", name);
assert_eq!(data.id, 0xbeefedde);
assert_eq!(name, "hell");
}
#[derive(Debug, PartialEq, Eq, Pread, Pwrite, SizeWith)]
struct Data7A {
pub y: u64,
pub x: u32,
}
#[derive(Debug, PartialEq, Eq, Pread, Pwrite, SizeWith)]
struct Data7B {
pub a: Data7A,
}
#[test]
fn test_nested_struct() {
let b = Data7B {
a: Data7A { y: 1, x: 2 },
};
let size = Data7B::size_with(&LE);
assert_eq!(size, 12);
let mut bytes = vec![0; size];
let written = bytes.pwrite_with(&b, 0, LE).unwrap();
assert_eq!(written, size);
let mut read = 0;
let b2: Data7B = bytes.gread_with(&mut read, LE).unwrap();
assert_eq!(read, size);
assert_eq!(b, b2);
}
#[derive(Debug, PartialEq, Eq, Pread, Pwrite, IOread, IOwrite, SizeWith)]
#[repr(C)]
struct Data8<T, Y> {
ids: [T; 3],
xyz: Y,
}
#[test]
fn test_generics() {
let mut bytes = [0xde, 0xed, 0xef, 0x10, 0x10];
let data: Data8<u8, u16> = bytes.pread_with(0, LE).unwrap();
assert_eq!(data.ids, [0xde, 0xed, 0xef]);
assert_eq!(data.xyz, 0x1010);
let data: Data8<u8, u16> = bytes.cread_with(0, LE);
assert_eq!(data.ids, [0xde, 0xed, 0xef]);
assert_eq!(data.xyz, 0x1010);
let size = Data8::<u8, u16>::size_with(&LE);
let written = bytes.pwrite_with(&data, 0, LE).unwrap();
assert_eq!(written, size);
}
#[derive(Debug, PartialEq, Eq, Pread, Pwrite, IOread, IOwrite, SizeWith)]
struct Data9(u8, u16);
#[test]
fn test_newtype() {
let mut bytes = [0xde, 0x10, 0x10];
let data: Data9 = bytes.pread_with(0, LE).unwrap();
assert_eq!(data.0, 0xde);
assert_eq!(data.1, 0x1010);
let data: Data9 = bytes.cread_with(0, LE);
assert_eq!(data.0, 0xde);
assert_eq!(data.1, 0x1010);
let size = Data9::size_with(&LE);
let written = bytes.pwrite_with(&data, 0, LE).unwrap();
assert_eq!(written, size);
}