Skip to content

feat: Add rust_htslib::bcf::index::build (#408) #106

feat: Add rust_htslib::bcf::index::build (#408)

feat: Add rust_htslib::bcf::index::build (#408) #106

Triggered via push March 27, 2024 14:39
Status Success
Total duration 43s
Artifacts
release-please
34s
release-please
Fit to window
Zoom out
Zoom in

Annotations

39 warnings
release-please
Node.js 16 actions are deprecated. Please update the following actions to use Node.js 20: actions/checkout@v2, GoogleCloudPlatform/release-please-action@v3. For more information see: https://github.blog/changelog/2023-09-22-github-actions-transitioning-from-node-16-to-node-20/.
release-please
The following actions uses node12 which is deprecated and will be forced to run on node16: actions/checkout@v2. For more info: https://github.blog/changelog/2023-06-13-github-actions-all-actions-will-run-on-node16-instead-of-node12-by-default/
the type `hts_sys::bam1_t` does not permit being left uninitialized: src/bam/record.rs#L129
warning: the type `hts_sys::bam1_t` does not permit being left uninitialized --> src/bam/record.rs:129:42 | 129 | let mut inner = unsafe { MaybeUninit::uninit().assume_init() }; | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | | | this code causes undefined behavior when executed | help: use `MaybeUninit<T>` instead, and only call `assume_init` after initialization is done | = note: integers must be initialized = note: `#[warn(invalid_value)]` on by default
usage of an `Arc` that is not `Send` and `Sync`: src/tpool.rs#L33
warning: usage of an `Arc` that is not `Send` and `Sync` --> src/tpool.rs:33:26 | 33 | let handle = Arc::new(RefCell::new(inner)); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = note: `Arc<RefCell<InnerThreadPool>>` is not `Send` and `Sync` as: = note: - the trait `Send` is not implemented for `RefCell<InnerThreadPool>` = note: - the trait `Sync` is not implemented for `RefCell<InnerThreadPool>` = help: consider using an `Rc` instead. `Arc` does not provide benefits for non `Send` and `Sync` types = note: if you intend to use `Arc` with `Send` and `Sync` traits = note: wrap the inner type with a `Mutex` or implement `Send` and `Sync` for `RefCell<InnerThreadPool>` = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#arc_with_non_send_sync = note: `#[warn(clippy::arc_with_non_send_sync)]` on by default
unneeded `return` statement: src/bgzf/mod.rs#L235
warning: unneeded `return` statement --> src/bgzf/mod.rs:235:9 | 235 | return Ok(ffi::CString::new(write_string).unwrap()); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return help: remove `return` | 235 - return Ok(ffi::CString::new(write_string).unwrap()); 235 + Ok(ffi::CString::new(write_string).unwrap()) |
redundant closure: src/bcf/record.rs#L1471
warning: redundant closure --> src/bcf/record.rs:1471:22 | 1471 | .map(|s| trim_slice(s)) | ^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `trim_slice` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure
redundant closure: src/bcf/record.rs#L1448
warning: redundant closure --> src/bcf/record.rs:1448:22 | 1448 | .map(|s| trim_slice(s)) | ^^^^^^^^^^^^^^^^^ help: replace the closure with the function itself: `trim_slice` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#redundant_closure = note: `#[warn(clippy::redundant_closure)]` on by default
very complex type used. Consider factoring parts into `type` definitions: src/bcf/record.rs#L1329
warning: very complex type used. Consider factoring parts into `type` definitions --> src/bcf/record.rs:1329:32 | 1329 | pub fn string(mut self) -> Result<Option<BufferBacked<'b, Vec<&'b [u8]>, B>>> { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#type_complexity = note: `#[warn(clippy::type_complexity)]` on by default
dereferencing a tuple pattern where every element takes a reference: src/bcf/record.rs#L1196
warning: dereferencing a tuple pattern where every element takes a reference --> src/bcf/record.rs:1196:13 | 1196 | let &Genotype(ref alleles) = self; | ^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrowed_reference = note: `#[warn(clippy::needless_borrowed_reference)]` on by default help: try removing the `&` and `ref` parts | 1196 - let &Genotype(ref alleles) = self; 1196 + let Genotype(alleles) = self; |
returning the result of a `let` binding from a block: src/bcf/record.rs#L1097
warning: returning the result of a `let` binding from a block --> src/bcf/record.rs:1097:13 | 1096 | let inner = htslib::bcf_dup(self.inner); | ---------------------------------------- unnecessary `let` binding 1097 | inner | ^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#let_and_return = note: `#[warn(clippy::let_and_return)]` on by default help: return the expression directly | 1096 ~ 1097 ~ htslib::bcf_dup(self.inner) |
casting raw pointers to the same type and constness is unnecessary (`*mut libc::c_void` -> `*mut libc::c_void`): src/bcf/record.rs#L126
warning: casting raw pointers to the same type and constness is unnecessary (`*mut libc::c_void` -> `*mut libc::c_void`) --> src/bcf/record.rs:126:26 | 126 | ::libc::free(self.inner as *mut ::libc::c_void); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `self.inner` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast
you should consider adding a `Default` implementation for `Buffer`: src/bcf/record.rs#L115
warning: you should consider adding a `Default` implementation for `Buffer` --> src/bcf/record.rs:115:5 | 115 | / pub fn new() -> Self { 116 | | Buffer { 117 | | inner: ptr::null_mut(), 118 | | len: 0, 119 | | } 120 | | } | |_____^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#new_without_default = note: `#[warn(clippy::new_without_default)]` on by default help: try adding this | 114 + impl Default for Buffer { 115 + fn default() -> Self { 116 + Self::new() 117 + } 118 + } |
casting raw pointers to the same type and constness is unnecessary (`*mut i32` -> `*mut i32`): src/bcf/header.rs#L120
warning: casting raw pointers to the same type and constness is unnecessary (`*mut i32` -> `*mut i32`) --> src/bcf/header.rs:120:17 | 120 | imap.as_mut_ptr() as *mut i32, | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `imap.as_mut_ptr()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast
casting raw pointers to the same type and constness is unnecessary (`*const *mut i8` -> `*const *mut i8`): src/bcf/header.rs#L119
warning: casting raw pointers to the same type and constness is unnecessary (`*const *mut i8` -> `*const *mut i8`) --> src/bcf/header.rs:119:17 | 119 | name_pointers.as_ptr() as *const *mut c_char, | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `name_pointers.as_ptr()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast
this expression creates a reference which is immediately dereferenced by the compiler: src/bam/mod.rs#L1289
warning: this expression creates a reference which is immediately dereferenced by the compiler --> src/bam/mod.rs:1289:32 | 1289 | match self.reader.read(&mut record) { | ^^^^^^^^^^^ help: change this to: `record` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_borrow = note: `#[warn(clippy::needless_borrow)]` on by default
casting to the same type is unnecessary (`usize` -> `usize`): src/bam/mod.rs#L1123
warning: casting to the same type is unnecessary (`usize` -> `usize`) --> src/bam/mod.rs:1123:17 | 1123 | ((l_text + 1) as usize).try_into().unwrap(), | ^^^^^^^^^^^^^^^^^^^^^^^ help: try: `(l_text + 1)` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast
unneeded `return` statement: src/bam/record.rs#L2449
warning: unneeded `return` statement --> src/bam/record.rs:2449:9 | 2449 | return Some(Ok(data)); | ^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return help: remove `return` | 2449 - return Some(Ok(data)); 2449 + Some(Ok(data)) |
unneeded `return` statement: src/bam/record.rs#L2415
warning: unneeded `return` statement --> src/bam/record.rs:2415:9 | 2415 | return self.mod_state.query_type(code); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return help: remove `return` | 2415 - return self.mod_state.query_type(code); 2415 + self.mod_state.query_type(code) |
this lifetime isn't used in the function definition: src/bam/record.rs#L2414
warning: this lifetime isn't used in the function definition --> src/bam/record.rs:2414:23 | 2414 | pub fn query_type<'a>(&self, code: i32) -> Result<BaseModificationMetadata> { | ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes
the following explicit lifetimes could be elided: 'a: src/bam/record.rs#L2402
warning: the following explicit lifetimes could be elided: 'a --> src/bam/record.rs:2402:12 | 2402 | fn new<'a>(r: &'a Record) -> Result<BaseModificationsIter<'a>> { | ^^ ^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 2402 - fn new<'a>(r: &'a Record) -> Result<BaseModificationsIter<'a>> { 2402 + fn new(r: &Record) -> Result<BaseModificationsIter<'_>> { |
unneeded `return` statement: src/bam/record.rs#L2389
warning: unneeded `return` statement --> src/bam/record.rs:2389:23 | 2389 | Err(e) => return Some(Err(e)), | ^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return help: remove `return` | 2389 | Err(e) => Some(Err(e)), | ~~~~~~~~~~~~
unneeded `return` statement: src/bam/record.rs#L2386
warning: unneeded `return` statement --> src/bam/record.rs:2386:21 | 2386 | return Some(Ok(data)); | ^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return help: remove `return` | 2386 - return Some(Ok(data)); 2386 + Some(Ok(data)) |
unneeded `return` statement: src/bam/record.rs#L2383
warning: unneeded `return` statement --> src/bam/record.rs:2383:21 | 2383 | return None; | ^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return help: remove `return` | 2383 - return None; 2383 + None |
unneeded `return` statement: src/bam/record.rs#L2366
warning: unneeded `return` statement --> src/bam/record.rs:2366:9 | 2366 | return self.mod_state.query_type(code); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return help: remove `return` | 2366 - return self.mod_state.query_type(code); 2366 + self.mod_state.query_type(code) |
this lifetime isn't used in the function definition: src/bam/record.rs#L2365
warning: this lifetime isn't used in the function definition --> src/bam/record.rs:2365:23 | 2365 | pub fn query_type<'a>(&self, code: i32) -> Result<BaseModificationMetadata> { | ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes
the following explicit lifetimes could be elided: 'a: src/bam/record.rs#L2356
warning: the following explicit lifetimes could be elided: 'a --> src/bam/record.rs:2356:12 | 2356 | fn new<'a>(r: &'a Record) -> Result<BaseModificationsPositionIter<'a>> { | ^^ ^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes help: elide the lifetimes | 2356 - fn new<'a>(r: &'a Record) -> Result<BaseModificationsPositionIter<'a>> { 2356 + fn new(r: &Record) -> Result<BaseModificationsPositionIter<'_>> { |
unneeded `return` statement: src/bam/record.rs#L2331
warning: unneeded `return` statement --> src/bam/record.rs:2331:17 | 2331 | / return Ok(BaseModificationMetadata { 2332 | | strand, 2333 | | implicit, 2334 | | canonical: canonical.try_into().unwrap(), 2335 | | }); | |__________________^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return help: remove `return` | 2331 ~ Ok(BaseModificationMetadata { 2332 + strand, 2333 + implicit, 2334 + canonical: canonical.try_into().unwrap(), 2335 ~ }) |
unneeded `return` statement: src/bam/record.rs#L2329
warning: unneeded `return` statement --> src/bam/record.rs:2329:17 | 2329 | return Err(Error::BamBaseModificationTypeNotFound); | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return help: remove `return` | 2329 - return Err(Error::BamBaseModificationTypeNotFound); 2329 + Err(Error::BamBaseModificationTypeNotFound) |
this lifetime isn't used in the function definition: src/bam/record.rs#L2314
warning: this lifetime isn't used in the function definition --> src/bam/record.rs:2314:23 | 2314 | pub fn query_type<'a>(&self, code: i32) -> Result<BaseModificationMetadata> { | ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#extra_unused_lifetimes = note: `#[warn(clippy::extra_unused_lifetimes)]` on by default
unneeded `return` statement: src/bam/record.rs#L2289
warning: unneeded `return` statement --> src/bam/record.rs:2289:13 | 2289 | return Ok(ret as usize); | ^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return help: remove `return` | 2289 - return Ok(ret as usize); 2289 + Ok(ret as usize) |
unneeded `return` statement: src/bam/record.rs#L2261
warning: unneeded `return` statement --> src/bam/record.rs:2261:9 | 2261 | return Ok(bm); | ^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_return = note: `#[warn(clippy::needless_return)]` on by default help: remove `return` | 2261 - return Ok(bm); 2261 + Ok(bm) |
the following explicit lifetimes could be elided: 'a: src/bam/record.rs#L2237
warning: the following explicit lifetimes could be elided: 'a --> src/bam/record.rs:2237:12 | 2237 | fn new<'a>(r: &'a Record) -> Result<BaseModificationState<'a>> { | ^^ ^^ ^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#needless_lifetimes = note: `#[warn(clippy::needless_lifetimes)]` on by default help: elide the lifetimes | 2237 - fn new<'a>(r: &'a Record) -> Result<BaseModificationState<'a>> { 2237 + fn new(r: &Record) -> Result<BaseModificationState<'_>> { |
unsafe function's docs miss `# Safety` section: src/bam/record.rs#L1620
warning: unsafe function's docs miss `# Safety` section --> src/bam/record.rs:1620:5 | 1620 | pub unsafe fn decoded_base_unchecked(&self, i: usize) -> u8 { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc
unsafe function's docs miss `# Safety` section: src/bam/record.rs#L1612
warning: unsafe function's docs miss `# Safety` section --> src/bam/record.rs:1612:5 | 1612 | pub unsafe fn encoded_base_unchecked(&self, i: usize) -> u8 { | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#missing_safety_doc = note: `#[warn(clippy::missing_safety_doc)]` on by default
casting raw pointers to the same type and constness is unnecessary (`*mut u8` -> `*mut u8`): src/bam/record.rs#L817
warning: casting raw pointers to the same type and constness is unnecessary (`*mut u8` -> `*mut u8`) --> src/bam/record.rs:817:21 | 817 | [v].as_mut_ptr() as *mut u8, | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `[v].as_mut_ptr()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast
casting raw pointers to the same type and constness is unnecessary (`*mut u8` -> `*mut u8`): src/bam/record.rs#L803
warning: casting raw pointers to the same type and constness is unnecessary (`*mut u8` -> `*mut u8`) --> src/bam/record.rs:803:21 | 803 | [v].as_mut_ptr() as *mut u8, | ^^^^^^^^^^^^^^^^^^^^^^^^^^^ help: try: `[v].as_mut_ptr()` | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#unnecessary_cast = note: `#[warn(clippy::unnecessary_cast)]` on by default
this item has comments with 4 forward slashes (`////`). These look like doc comments, but they aren't: src/bam/ext.rs#L1
warning: this item has comments with 4 forward slashes (`////`). These look like doc comments, but they aren't --> src/bam/ext.rs:1:1 | 1 | / //// Copyright 2019 Johannes Köster and Florian Finkernagel. 2 | | // Licensed under the MIT license (http://opensource.org/licenses/MIT) 3 | | // This file may not be copied, modified, or distributed 4 | | // except according to those terms. ... | 7 | | 8 | | use crate::bam; | |_ | = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#four_forward_slashes = note: `#[warn(clippy::four_forward_slashes)]` on by default help: make this a doc comment by removing one `/` | 1 + /// Copyright 2019 Johannes Köster and Florian Finkernagel. |
field `hts_format` is never read: src/tbx/mod.rs#L94
warning: field `hts_format` is never read --> src/tbx/mod.rs:94:5 | 87 | pub struct Reader { | ------ field in this struct ... 94 | hts_format: htslib::htsExactFormat, | ^^^^^^^^^^ | = note: `Reader` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
field `buffer` is never read: src/bcf/record.rs#L134
warning: field `buffer` is never read --> src/bcf/record.rs:134:5 | 132 | pub struct BufferBacked<'a, T: 'a + fmt::Debug, B: Borrow<Buffer> + 'a> { | ------------ field in this struct 133 | value: T, 134 | buffer: B, | ^^^^^^ | = note: `BufferBacked` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis = note: `#[warn(dead_code)]` on by default