Skip to content

Commit

Permalink
cram/io/reader/header: Discard rest of header container
Browse files Browse the repository at this point in the history
This consumes the trailer of the first block, subsequent expansion
blocks, and container padding.
  • Loading branch information
zaeleus committed Jan 9, 2025
1 parent b8d1497 commit ac27106
Show file tree
Hide file tree
Showing 4 changed files with 24 additions and 6 deletions.
11 changes: 8 additions & 3 deletions noodles-cram/src/async/io/reader/header.rs
Original file line number Diff line number Diff line change
Expand Up @@ -88,9 +88,14 @@ where
{
let mut container_reader = reader.container_reader().await?;

let mut raw_sam_header_reader = container_reader.raw_sam_header_reader().await?;
let header = read_sam_header(&mut raw_sam_header_reader).await?;
raw_sam_header_reader.discard_to_end().await?;
let header = {
let mut raw_sam_header_reader = container_reader.raw_sam_header_reader().await?;
let header = read_sam_header(&mut raw_sam_header_reader).await?;
raw_sam_header_reader.discard_to_end().await?;
header
};

container_reader.discard_to_end().await?;

Ok(header)
}
Expand Down
4 changes: 4 additions & 0 deletions noodles-cram/src/async/io/reader/header/container.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,4 +32,8 @@ where

Ok(sam_header::Reader::new(reader, len))
}

pub(super) async fn discard_to_end(&mut self) -> io::Result<u64> {
io::copy(&mut self.inner, &mut io::sink()).await
}
}
11 changes: 8 additions & 3 deletions noodles-cram/src/io/reader/header.rs
Original file line number Diff line number Diff line change
Expand Up @@ -86,9 +86,14 @@ where
{
let mut container_reader = reader.container_reader()?;

let mut raw_sam_header_reader = container_reader.raw_sam_header_reader()?;
let header = read_sam_header(&mut raw_sam_header_reader)?;
raw_sam_header_reader.discard_to_end()?;
let header = {
let mut raw_sam_header_reader = container_reader.raw_sam_header_reader()?;
let header = read_sam_header(&mut raw_sam_header_reader)?;
raw_sam_header_reader.discard_to_end()?;
header
};

container_reader.discard_to_end()?;

Ok(header)
}
Expand Down
4 changes: 4 additions & 0 deletions noodles-cram/src/io/reader/header/container.rs
Original file line number Diff line number Diff line change
Expand Up @@ -34,4 +34,8 @@ where

Ok(sam_header::Reader::new(reader, len))
}

pub(super) fn discard_to_end(&mut self) -> io::Result<u64> {
io::copy(&mut self.inner, &mut io::sink())
}
}

0 comments on commit ac27106

Please sign in to comment.