Skip to content

Add annotations to ensure that readers are Sync. #81

Add annotations to ensure that readers are Sync.

Add annotations to ensure that readers are Sync. #81

Triggered via pull request January 6, 2025 23:10
Status Failure
Total duration 36s
Artifacts

test.yml

on: pull_request
Fit to window
Zoom out
Zoom in

Annotations

11 errors and 5 warnings
`*mut std::ffi::c_void` cannot be shared between threads safely: src/lib.rs#L1405
error[E0277]: `*mut std::ffi::c_void` cannot be shared between threads safely --> src/lib.rs:1405:18 | 1405 | takes_sync::<MergeIterator<'static, usize, DefaultSort>>(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `*mut std::ffi::c_void` cannot be shared between threads safely | = help: within `ShardIter<'static, usize, DefaultSort>`, the trait `std::marker::Sync` is not implemented for `*mut std::ffi::c_void`, which is required by `MergeIterator<'static, usize, DefaultSort>: std::marker::Sync` note: required because it appears within the type `lz4::liblz4::LZ4FDecompressionContext` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-sys-1.11.1+lz4-1.10.0/src/lib.rs:48:12 | 48 | pub struct LZ4FDecompressionContext(pub *mut c_void); | ^^^^^^^^^^^^^^^^^^^^^^^^ note: required because it appears within the type `lz4::decoder::DecoderContext` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-1.28.0/src/decoder.rs:9:8 | 9 | struct DecoderContext { | ^^^^^^^^^^^^^^ note: required because it appears within the type `lz4::Decoder<std::io::BufReader<ReadAdapter<&'static std::fs::File, std::fs::File>>>` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-1.28.0/src/decoder.rs:14:12 | 14 | pub struct Decoder<R> { | ^^^^^^^ note: required because it appears within the type `ShardIter<'static, usize, DefaultSort>` --> src/lib.rs:905:8 | 905 | struct ShardIter<'a, T, S> | ^^^^^^^^^ = note: required for `std::ptr::Unique<ShardIter<'static, usize, DefaultSort>>` to implement `std::marker::Sync` note: required because it appears within the type `alloc::raw_vec::RawVec<ShardIter<'static, usize, DefaultSort>>` --> /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/alloc/src/raw_vec.rs:69:19 note: required because it appears within the type `std::vec::Vec<ShardIter<'static, usize, DefaultSort>>` --> /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/alloc/src/vec/mod.rs:398:12 note: required because it appears within the type `min_max_heap::MinMaxHeap<ShardIter<'static, usize, DefaultSort>>` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/min-max-heap-1.3.0/src/lib.rs:47:12 | 47 | pub struct MinMaxHeap<T>(Vec<T>); | ^^^^^^^^^^ note: required because it appears within the type `RangeIter<'static, usize, DefaultSort>` --> src/lib.rs:1006:12 | 1006 | pub struct RangeIter<'a, T, S> | ^^^^^^^^^ = note: required for `std::ptr::Unique<RangeIter<'static, usize, DefaultSort>>` to implement `std::marker::Sync` note: required because it appears within the type `alloc::raw_vec::RawVec<RangeIter<'static, usize, DefaultSort>>` --> /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/alloc/src/raw_vec.rs:69:19 note: required because it appears within the type `std::vec::Vec<RangeIter<'static, usize, DefaultSort>>` --> /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/alloc/src/vec/mod.rs:398:12 note: required because it appears within the type `MergeIterator<'static, usize, DefaultSort>` --> src/lib.rs:1188:12 | 1188 | pub struct MergeIterator<'a, T: 'a, S: 'a> | ^^^^^^^^^^^^^ note: required by a bound in `assert_readers_are_sync::takes_sync` --> src/lib.rs:1401:28 | 1401 | const fn takes_sync<T: Sync>() {} | ^^^^ required by this bound in `takes_sync`
`*mut std::ffi::c_void` cannot be shared between threads safely: src/lib.rs#L1404
error[E0277]: `*mut std::ffi::c_void` cannot be shared between threads safely --> src/lib.rs:1404:18 | 1404 | takes_sync::<ShardIter<'static, usize, DefaultSort>>(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `*mut std::ffi::c_void` cannot be shared between threads safely | = help: within `ShardIter<'static, usize, DefaultSort>`, the trait `std::marker::Sync` is not implemented for `*mut std::ffi::c_void`, which is required by `ShardIter<'static, usize, DefaultSort>: std::marker::Sync` note: required because it appears within the type `lz4::liblz4::LZ4FDecompressionContext` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-sys-1.11.1+lz4-1.10.0/src/lib.rs:48:12 | 48 | pub struct LZ4FDecompressionContext(pub *mut c_void); | ^^^^^^^^^^^^^^^^^^^^^^^^ note: required because it appears within the type `lz4::decoder::DecoderContext` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-1.28.0/src/decoder.rs:9:8 | 9 | struct DecoderContext { | ^^^^^^^^^^^^^^ note: required because it appears within the type `lz4::Decoder<std::io::BufReader<ReadAdapter<&'static std::fs::File, std::fs::File>>>` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-1.28.0/src/decoder.rs:14:12 | 14 | pub struct Decoder<R> { | ^^^^^^^ note: required because it appears within the type `ShardIter<'static, usize, DefaultSort>` --> src/lib.rs:905:8 | 905 | struct ShardIter<'a, T, S> | ^^^^^^^^^ note: required by a bound in `assert_readers_are_sync::takes_sync` --> src/lib.rs:1401:28 | 1401 | const fn takes_sync<T: Sync>() {} | ^^^^ required by this bound in `takes_sync`
`*mut std::ffi::c_void` cannot be shared between threads safely: src/lib.rs#L1403
error[E0277]: `*mut std::ffi::c_void` cannot be shared between threads safely --> src/lib.rs:1403:18 | 1403 | takes_sync::<RangeIter<'static, usize, DefaultSort>>(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `*mut std::ffi::c_void` cannot be shared between threads safely | = help: within `ShardIter<'static, usize, DefaultSort>`, the trait `std::marker::Sync` is not implemented for `*mut std::ffi::c_void`, which is required by `RangeIter<'static, usize, DefaultSort>: std::marker::Sync` note: required because it appears within the type `lz4::liblz4::LZ4FDecompressionContext` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-sys-1.11.1+lz4-1.10.0/src/lib.rs:48:12 | 48 | pub struct LZ4FDecompressionContext(pub *mut c_void); | ^^^^^^^^^^^^^^^^^^^^^^^^ note: required because it appears within the type `lz4::decoder::DecoderContext` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-1.28.0/src/decoder.rs:9:8 | 9 | struct DecoderContext { | ^^^^^^^^^^^^^^ note: required because it appears within the type `lz4::Decoder<std::io::BufReader<ReadAdapter<&'static std::fs::File, std::fs::File>>>` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-1.28.0/src/decoder.rs:14:12 | 14 | pub struct Decoder<R> { | ^^^^^^^ note: required because it appears within the type `ShardIter<'static, usize, DefaultSort>` --> src/lib.rs:905:8 | 905 | struct ShardIter<'a, T, S> | ^^^^^^^^^ = note: required for `std::ptr::Unique<ShardIter<'static, usize, DefaultSort>>` to implement `std::marker::Sync` note: required because it appears within the type `alloc::raw_vec::RawVec<ShardIter<'static, usize, DefaultSort>>` --> /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/alloc/src/raw_vec.rs:69:19 note: required because it appears within the type `std::vec::Vec<ShardIter<'static, usize, DefaultSort>>` --> /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/alloc/src/vec/mod.rs:398:12 note: required because it appears within the type `min_max_heap::MinMaxHeap<ShardIter<'static, usize, DefaultSort>>` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/min-max-heap-1.3.0/src/lib.rs:47:12 | 47 | pub struct MinMaxHeap<T>(Vec<T>); | ^^^^^^^^^^ note: required because it appears within the type `RangeIter<'static, usize, DefaultSort>` --> src/lib.rs:1006:12 | 1006 | pub struct RangeIter<'a, T, S> | ^^^^^^^^^ note: required by a bound in `assert_readers_are_sync::takes_sync` --> src/lib.rs:1401:28 | 1401 | const fn takes_sync<T: Sync>() {} | ^^^^ required by this bound in `takes_sync`
`*mut std::ffi::c_void` cannot be shared between threads safely: src/unsorted.rs#L345
error[E0277]: `*mut std::ffi::c_void` cannot be shared between threads safely --> src/unsorted.rs:345:18 | 345 | takes_sync::<UnsortedShardReader<usize, DefaultSort>>(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `*mut std::ffi::c_void` cannot be shared between threads safely | = help: within `unsorted::UnsortedShardReader<usize>`, the trait `std::marker::Sync` is not implemented for `*mut std::ffi::c_void`, which is required by `unsorted::UnsortedShardReader<usize>: std::marker::Sync` note: required because it appears within the type `lz4::liblz4::LZ4FDecompressionContext` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-sys-1.11.1+lz4-1.10.0/src/lib.rs:48:12 | 48 | pub struct LZ4FDecompressionContext(pub *mut c_void); | ^^^^^^^^^^^^^^^^^^^^^^^^ note: required because it appears within the type `lz4::decoder::DecoderContext` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-1.28.0/src/decoder.rs:9:8 | 9 | struct DecoderContext { | ^^^^^^^^^^^^^^ note: required because it appears within the type `lz4::Decoder<std::io::BufReader<ReadAdapter<std::fs::File, std::fs::File>>>` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-1.28.0/src/decoder.rs:14:12 | 14 | pub struct Decoder<R> { | ^^^^^^^ note: required because it appears within the type `unsorted::UnsortedShardIter<usize>` --> src/unsorted.rs:267:8 | 267 | struct UnsortedShardIter<T> { | ^^^^^^^^^^^^^^^^^ note: required because it appears within the type `std::option::Option<unsorted::UnsortedShardIter<usize>>` --> /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/core/src/option.rs:574:10 note: required because it appears within the type `unsorted::UnsortedShardFileReader<usize>` --> src/unsorted.rs:167:8 | 167 | struct UnsortedShardFileReader<T, S = DefaultSort> | ^^^^^^^^^^^^^^^^^^^^^^^ note: required because it appears within the type `std::option::Option<unsorted::UnsortedShardFileReader<usize>>` --> /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/core/src/option.rs:574:10 note: required because it appears within the type `unsorted::UnsortedShardReader<usize>` --> src/unsorted.rs:30:12 | 30 | pub struct UnsortedShardReader<T, S = DefaultSort> | ^^^^^^^^^^^^^^^^^^^ note: required by a bound in `unsorted::assert_readers_are_sync::takes_sync` --> src/unsorted.rs:343:28 | 343 | const fn takes_sync<T: Sync>() {} | ^^^^ required by this bound in `takes_sync`
`*mut std::ffi::c_void` cannot be shared between threads safely: src/unsorted.rs#L344
error[E0277]: `*mut std::ffi::c_void` cannot be shared between threads safely --> src/unsorted.rs:344:18 | 344 | takes_sync::<UnsortedShardFileReader<usize, DefaultSort>>(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `*mut std::ffi::c_void` cannot be shared between threads safely | = help: within `unsorted::UnsortedShardFileReader<usize>`, the trait `std::marker::Sync` is not implemented for `*mut std::ffi::c_void`, which is required by `unsorted::UnsortedShardFileReader<usize>: std::marker::Sync` note: required because it appears within the type `lz4::liblz4::LZ4FDecompressionContext` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-sys-1.11.1+lz4-1.10.0/src/lib.rs:48:12 | 48 | pub struct LZ4FDecompressionContext(pub *mut c_void); | ^^^^^^^^^^^^^^^^^^^^^^^^ note: required because it appears within the type `lz4::decoder::DecoderContext` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-1.28.0/src/decoder.rs:9:8 | 9 | struct DecoderContext { | ^^^^^^^^^^^^^^ note: required because it appears within the type `lz4::Decoder<std::io::BufReader<ReadAdapter<std::fs::File, std::fs::File>>>` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-1.28.0/src/decoder.rs:14:12 | 14 | pub struct Decoder<R> { | ^^^^^^^ note: required because it appears within the type `unsorted::UnsortedShardIter<usize>` --> src/unsorted.rs:267:8 | 267 | struct UnsortedShardIter<T> { | ^^^^^^^^^^^^^^^^^ note: required because it appears within the type `std::option::Option<unsorted::UnsortedShardIter<usize>>` --> /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/core/src/option.rs:574:10 note: required because it appears within the type `unsorted::UnsortedShardFileReader<usize>` --> src/unsorted.rs:167:8 | 167 | struct UnsortedShardFileReader<T, S = DefaultSort> | ^^^^^^^^^^^^^^^^^^^^^^^ note: required by a bound in `unsorted::assert_readers_are_sync::takes_sync` --> src/unsorted.rs:343:28 | 343 | const fn takes_sync<T: Sync>() {} | ^^^^ required by this bound in `takes_sync`
`*mut std::ffi::c_void` cannot be shared between threads safely: src/lib.rs#L1405
error[E0277]: `*mut std::ffi::c_void` cannot be shared between threads safely --> src/lib.rs:1405:18 | 1405 | takes_sync::<MergeIterator<'static, usize, DefaultSort>>(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `*mut std::ffi::c_void` cannot be shared between threads safely | = help: within `ShardIter<'static, usize, DefaultSort>`, the trait `std::marker::Sync` is not implemented for `*mut std::ffi::c_void`, which is required by `MergeIterator<'static, usize, DefaultSort>: std::marker::Sync` note: required because it appears within the type `lz4::liblz4::LZ4FDecompressionContext` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-sys-1.11.1+lz4-1.10.0/src/lib.rs:48:12 | 48 | pub struct LZ4FDecompressionContext(pub *mut c_void); | ^^^^^^^^^^^^^^^^^^^^^^^^ note: required because it appears within the type `lz4::decoder::DecoderContext` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-1.28.0/src/decoder.rs:9:8 | 9 | struct DecoderContext { | ^^^^^^^^^^^^^^ note: required because it appears within the type `lz4::Decoder<std::io::BufReader<ReadAdapter<&'static std::fs::File, std::fs::File>>>` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-1.28.0/src/decoder.rs:14:12 | 14 | pub struct Decoder<R> { | ^^^^^^^ note: required because it appears within the type `ShardIter<'static, usize, DefaultSort>` --> src/lib.rs:905:8 | 905 | struct ShardIter<'a, T, S> | ^^^^^^^^^ = note: required for `std::ptr::Unique<ShardIter<'static, usize, DefaultSort>>` to implement `std::marker::Sync` note: required because it appears within the type `alloc::raw_vec::RawVec<ShardIter<'static, usize, DefaultSort>>` --> /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/alloc/src/raw_vec.rs:69:19 note: required because it appears within the type `std::vec::Vec<ShardIter<'static, usize, DefaultSort>>` --> /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/alloc/src/vec/mod.rs:398:12 note: required because it appears within the type `min_max_heap::MinMaxHeap<ShardIter<'static, usize, DefaultSort>>` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/min-max-heap-1.3.0/src/lib.rs:47:12 | 47 | pub struct MinMaxHeap<T>(Vec<T>); | ^^^^^^^^^^ note: required because it appears within the type `RangeIter<'static, usize, DefaultSort>` --> src/lib.rs:1006:12 | 1006 | pub struct RangeIter<'a, T, S> | ^^^^^^^^^ = note: required for `std::ptr::Unique<RangeIter<'static, usize, DefaultSort>>` to implement `std::marker::Sync` note: required because it appears within the type `alloc::raw_vec::RawVec<RangeIter<'static, usize, DefaultSort>>` --> /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/alloc/src/raw_vec.rs:69:19 note: required because it appears within the type `std::vec::Vec<RangeIter<'static, usize, DefaultSort>>` --> /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/alloc/src/vec/mod.rs:398:12 note: required because it appears within the type `MergeIterator<'static, usize, DefaultSort>` --> src/lib.rs:1188:12 | 1188 | pub struct MergeIterator<'a, T: 'a, S: 'a> | ^^^^^^^^^^^^^ note: required by a bound in `assert_readers_are_sync::takes_sync` --> src/lib.rs:1401:28 | 1401 | const fn takes_sync<T: Sync>() {} | ^^^^ required by this bound in `takes_sync`
`*mut std::ffi::c_void` cannot be shared between threads safely: src/lib.rs#L1404
error[E0277]: `*mut std::ffi::c_void` cannot be shared between threads safely --> src/lib.rs:1404:18 | 1404 | takes_sync::<ShardIter<'static, usize, DefaultSort>>(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `*mut std::ffi::c_void` cannot be shared between threads safely | = help: within `ShardIter<'static, usize, DefaultSort>`, the trait `std::marker::Sync` is not implemented for `*mut std::ffi::c_void`, which is required by `ShardIter<'static, usize, DefaultSort>: std::marker::Sync` note: required because it appears within the type `lz4::liblz4::LZ4FDecompressionContext` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-sys-1.11.1+lz4-1.10.0/src/lib.rs:48:12 | 48 | pub struct LZ4FDecompressionContext(pub *mut c_void); | ^^^^^^^^^^^^^^^^^^^^^^^^ note: required because it appears within the type `lz4::decoder::DecoderContext` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-1.28.0/src/decoder.rs:9:8 | 9 | struct DecoderContext { | ^^^^^^^^^^^^^^ note: required because it appears within the type `lz4::Decoder<std::io::BufReader<ReadAdapter<&'static std::fs::File, std::fs::File>>>` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-1.28.0/src/decoder.rs:14:12 | 14 | pub struct Decoder<R> { | ^^^^^^^ note: required because it appears within the type `ShardIter<'static, usize, DefaultSort>` --> src/lib.rs:905:8 | 905 | struct ShardIter<'a, T, S> | ^^^^^^^^^ note: required by a bound in `assert_readers_are_sync::takes_sync` --> src/lib.rs:1401:28 | 1401 | const fn takes_sync<T: Sync>() {} | ^^^^ required by this bound in `takes_sync`
`*mut std::ffi::c_void` cannot be shared between threads safely: src/lib.rs#L1403
error[E0277]: `*mut std::ffi::c_void` cannot be shared between threads safely --> src/lib.rs:1403:18 | 1403 | takes_sync::<RangeIter<'static, usize, DefaultSort>>(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `*mut std::ffi::c_void` cannot be shared between threads safely | = help: within `ShardIter<'static, usize, DefaultSort>`, the trait `std::marker::Sync` is not implemented for `*mut std::ffi::c_void`, which is required by `RangeIter<'static, usize, DefaultSort>: std::marker::Sync` note: required because it appears within the type `lz4::liblz4::LZ4FDecompressionContext` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-sys-1.11.1+lz4-1.10.0/src/lib.rs:48:12 | 48 | pub struct LZ4FDecompressionContext(pub *mut c_void); | ^^^^^^^^^^^^^^^^^^^^^^^^ note: required because it appears within the type `lz4::decoder::DecoderContext` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-1.28.0/src/decoder.rs:9:8 | 9 | struct DecoderContext { | ^^^^^^^^^^^^^^ note: required because it appears within the type `lz4::Decoder<std::io::BufReader<ReadAdapter<&'static std::fs::File, std::fs::File>>>` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-1.28.0/src/decoder.rs:14:12 | 14 | pub struct Decoder<R> { | ^^^^^^^ note: required because it appears within the type `ShardIter<'static, usize, DefaultSort>` --> src/lib.rs:905:8 | 905 | struct ShardIter<'a, T, S> | ^^^^^^^^^ = note: required for `std::ptr::Unique<ShardIter<'static, usize, DefaultSort>>` to implement `std::marker::Sync` note: required because it appears within the type `alloc::raw_vec::RawVec<ShardIter<'static, usize, DefaultSort>>` --> /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/alloc/src/raw_vec.rs:69:19 note: required because it appears within the type `std::vec::Vec<ShardIter<'static, usize, DefaultSort>>` --> /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/alloc/src/vec/mod.rs:398:12 note: required because it appears within the type `min_max_heap::MinMaxHeap<ShardIter<'static, usize, DefaultSort>>` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/min-max-heap-1.3.0/src/lib.rs:47:12 | 47 | pub struct MinMaxHeap<T>(Vec<T>); | ^^^^^^^^^^ note: required because it appears within the type `RangeIter<'static, usize, DefaultSort>` --> src/lib.rs:1006:12 | 1006 | pub struct RangeIter<'a, T, S> | ^^^^^^^^^ note: required by a bound in `assert_readers_are_sync::takes_sync` --> src/lib.rs:1401:28 | 1401 | const fn takes_sync<T: Sync>() {} | ^^^^ required by this bound in `takes_sync`
`*mut std::ffi::c_void` cannot be shared between threads safely: src/unsorted.rs#L345
error[E0277]: `*mut std::ffi::c_void` cannot be shared between threads safely --> src/unsorted.rs:345:18 | 345 | takes_sync::<UnsortedShardReader<usize, DefaultSort>>(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `*mut std::ffi::c_void` cannot be shared between threads safely | = help: within `unsorted::UnsortedShardReader<usize>`, the trait `std::marker::Sync` is not implemented for `*mut std::ffi::c_void`, which is required by `unsorted::UnsortedShardReader<usize>: std::marker::Sync` note: required because it appears within the type `lz4::liblz4::LZ4FDecompressionContext` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-sys-1.11.1+lz4-1.10.0/src/lib.rs:48:12 | 48 | pub struct LZ4FDecompressionContext(pub *mut c_void); | ^^^^^^^^^^^^^^^^^^^^^^^^ note: required because it appears within the type `lz4::decoder::DecoderContext` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-1.28.0/src/decoder.rs:9:8 | 9 | struct DecoderContext { | ^^^^^^^^^^^^^^ note: required because it appears within the type `lz4::Decoder<std::io::BufReader<ReadAdapter<std::fs::File, std::fs::File>>>` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-1.28.0/src/decoder.rs:14:12 | 14 | pub struct Decoder<R> { | ^^^^^^^ note: required because it appears within the type `unsorted::UnsortedShardIter<usize>` --> src/unsorted.rs:267:8 | 267 | struct UnsortedShardIter<T> { | ^^^^^^^^^^^^^^^^^ note: required because it appears within the type `std::option::Option<unsorted::UnsortedShardIter<usize>>` --> /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/core/src/option.rs:574:10 note: required because it appears within the type `unsorted::UnsortedShardFileReader<usize>` --> src/unsorted.rs:167:8 | 167 | struct UnsortedShardFileReader<T, S = DefaultSort> | ^^^^^^^^^^^^^^^^^^^^^^^ note: required because it appears within the type `std::option::Option<unsorted::UnsortedShardFileReader<usize>>` --> /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/core/src/option.rs:574:10 note: required because it appears within the type `unsorted::UnsortedShardReader<usize>` --> src/unsorted.rs:30:12 | 30 | pub struct UnsortedShardReader<T, S = DefaultSort> | ^^^^^^^^^^^^^^^^^^^ note: required by a bound in `unsorted::assert_readers_are_sync::takes_sync` --> src/unsorted.rs:343:28 | 343 | const fn takes_sync<T: Sync>() {} | ^^^^ required by this bound in `takes_sync`
`*mut std::ffi::c_void` cannot be shared between threads safely: src/unsorted.rs#L344
error[E0277]: `*mut std::ffi::c_void` cannot be shared between threads safely --> src/unsorted.rs:344:18 | 344 | takes_sync::<UnsortedShardFileReader<usize, DefaultSort>>(); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ `*mut std::ffi::c_void` cannot be shared between threads safely | = help: within `unsorted::UnsortedShardFileReader<usize>`, the trait `std::marker::Sync` is not implemented for `*mut std::ffi::c_void`, which is required by `unsorted::UnsortedShardFileReader<usize>: std::marker::Sync` note: required because it appears within the type `lz4::liblz4::LZ4FDecompressionContext` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-sys-1.11.1+lz4-1.10.0/src/lib.rs:48:12 | 48 | pub struct LZ4FDecompressionContext(pub *mut c_void); | ^^^^^^^^^^^^^^^^^^^^^^^^ note: required because it appears within the type `lz4::decoder::DecoderContext` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-1.28.0/src/decoder.rs:9:8 | 9 | struct DecoderContext { | ^^^^^^^^^^^^^^ note: required because it appears within the type `lz4::Decoder<std::io::BufReader<ReadAdapter<std::fs::File, std::fs::File>>>` --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/lz4-1.28.0/src/decoder.rs:14:12 | 14 | pub struct Decoder<R> { | ^^^^^^^ note: required because it appears within the type `unsorted::UnsortedShardIter<usize>` --> src/unsorted.rs:267:8 | 267 | struct UnsortedShardIter<T> { | ^^^^^^^^^^^^^^^^^ note: required because it appears within the type `std::option::Option<unsorted::UnsortedShardIter<usize>>` --> /rustc/051478957371ee0084a7c0913941d2a8c4757bb9/library/core/src/option.rs:574:10 note: required because it appears within the type `unsorted::UnsortedShardFileReader<usize>` --> src/unsorted.rs:167:8 | 167 | struct UnsortedShardFileReader<T, S = DefaultSort> | ^^^^^^^^^^^^^^^^^^^^^^^ note: required by a bound in `unsorted::assert_readers_are_sync::takes_sync` --> src/unsorted.rs:343:28 | 343 | const fn takes_sync<T: Sync>() {} | ^^^^ required by this bound in `takes_sync`
test
Clippy had exited with the 101 exit code
test
ubuntu-latest pipelines will use ubuntu-24.04 soon. For more details, see https://github.com/actions/runner-images/issues/10636
test
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
test
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
test
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/
test
The `set-output` command is deprecated and will be disabled soon. Please upgrade to using Environment Files. For more information see: https://github.blog/changelog/2022-10-11-github-actions-deprecating-save-state-and-set-output-commands/