diff --git a/Cargo.lock b/Cargo.lock index a6c18cd79063..282dabfd0de3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -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]] diff --git a/supply-chain/audits.toml b/supply-chain/audits.toml index 95f174cde8df..732eebccb51a 100644 --- a/supply-chain/audits.toml +++ b/supply-chain/audits.toml @@ -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 " +criteria = "safe-to-deploy" +delta = "0.11.0 -> 0.11.1" + [[audits.selectors]] who = "Emilio Cobos Álvarez " criteria = "safe-to-deploy" diff --git a/third_party/rust/scroll_derive/.cargo-checksum.json b/third_party/rust/scroll_derive/.cargo-checksum.json index a86b234ae3c8..8c6b3b87c4fe 100644 --- a/third_party/rust/scroll_derive/.cargo-checksum.json +++ b/third_party/rust/scroll_derive/.cargo-checksum.json @@ -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"} \ No newline at end of file +{"files":{"Cargo.toml":"9fbb5068c3ffbf2c357f4068f854f439bae4999e04527e2dedc6758fa37a9807","LICENSE":"afb11426e09da40a1ae4f8fa17ddcc6b6a52d14df04c29bc5bcd06eb8730624d","README.md":"f89c7768454b0d2b9db816afe05db3a4cea1125bef87f08ed3eefd65e9e2b180","src/lib.rs":"a9cabe3c0b373f352357745b817f188ab841e9445056014dee9cc83c4d167483"},"package":"1db149f81d46d2deba7cd3c50772474707729550221e69588478ebf9ada425ae"} \ No newline at end of file diff --git a/third_party/rust/scroll_derive/Cargo.lock b/third_party/rust/scroll_derive/Cargo.lock deleted file mode 100644 index 49119a6c7bc7..000000000000 --- a/third_party/rust/scroll_derive/Cargo.lock +++ /dev/null @@ -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" diff --git a/third_party/rust/scroll_derive/Cargo.toml b/third_party/rust/scroll_derive/Cargo.toml index 98041f2cd000..71f40a7e6c97 100644 --- a/third_party/rust/scroll_derive/Cargo.toml +++ b/third_party/rust/scroll_derive/Cargo.toml @@ -12,17 +12,34 @@ [package] edition = "2018" name = "scroll_derive" -version = "0.11.0" -authors = ["m4b ", "Ted Mielczarek ", "Systemcluster "] +version = "0.11.1" +authors = [ + "m4b ", + "Ted Mielczarek ", + "Systemcluster ", +] +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" diff --git a/third_party/rust/scroll_derive/examples/main.rs b/third_party/rust/scroll_derive/examples/main.rs deleted file mode 100644 index faec85300bf2..000000000000 --- a/third_party/rust/scroll_derive/examples/main.rs +++ /dev/null @@ -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::()]; - 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); -} diff --git a/third_party/rust/scroll_derive/tests/tests.rs b/third_party/rust/scroll_derive/tests/tests.rs deleted file mode 100644 index 532ac065e0f4..000000000000 --- a/third_party/rust/scroll_derive/tests/tests.rs +++ /dev/null @@ -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::()]; - 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::()); -} - -#[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 { - ids: [T; 3], - xyz: Y, -} - -#[test] -fn test_generics() { - let mut bytes = [0xde, 0xed, 0xef, 0x10, 0x10]; - let data: Data8 = bytes.pread_with(0, LE).unwrap(); - assert_eq!(data.ids, [0xde, 0xed, 0xef]); - assert_eq!(data.xyz, 0x1010); - let data: Data8 = bytes.cread_with(0, LE); - assert_eq!(data.ids, [0xde, 0xed, 0xef]); - assert_eq!(data.xyz, 0x1010); - let size = Data8::::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); -}