Skip to content

Commit b9f83fa

Browse files
committed
Update to noodles 0.74.0
1 parent f6c1ed0 commit b9f83fa

File tree

3 files changed

+17
-11
lines changed

3 files changed

+17
-11
lines changed

Cargo.lock

+4-4
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ flate2 = "1.0.14"
2020
git-testament = "0.2.0"
2121
interval-tree = { git = "https://github.com/zaeleus/interval-tree.git", rev = "e303d7254d53de5c418d6079d4b66c30c10958d4" }
2222
mimalloc = { version = "0.1.26", default-features = false }
23-
noodles = { version = "0.73.0", features = ["bam", "bgzf", "core", "gff", "sam"] }
23+
noodles = { version = "0.74.0", features = ["bam", "bgzf", "core", "gff", "sam"] }
2424
noodles-bgzf = { version = "0.30.0", features = ["libdeflate"] }
2525
thiserror = "1.0.40"
2626
tracing = "0.1.25"

src/lib.rs

+12-6
Original file line numberDiff line numberDiff line change
@@ -70,14 +70,16 @@ pub fn read_features<R>(
7070
where
7171
R: BufRead,
7272
{
73+
use noodles::gff::lazy::{record::attributes::field::Value, Line};
74+
7375
let mut features: HashMap<String, Vec<Feature>> = HashMap::new();
7476

7577
info!("reading features");
7678

77-
let mut line = noodles::gff::lazy::Line::default();
79+
let mut line = Line::default();
7880

7981
while reader.read_lazy_line(&mut line)? != 0 {
80-
let noodles::gff::lazy::Line::Record(ref record) = line else {
82+
let Line::Record(ref record) = line else {
8183
continue;
8284
};
8385

@@ -86,17 +88,21 @@ where
8688
}
8789

8890
let reference_sequence_name = record.reference_sequence_name();
89-
let start = record.start().try_into()?;
90-
let end = record.end().try_into()?;
91-
let strand = record.strand().try_into()?;
91+
let start = record.start()?;
92+
let end = record.end()?;
93+
let strand = record.strand()?;
9294

9395
let feature = Feature::new(reference_sequence_name.into(), start, end, strand);
9496

9597
let attributes = record.attributes();
9698
let id = attributes
9799
.get(feature_id)
98100
.ok_or_else(|| ReadFeaturesError::MissingAttribute(feature_id.into()))?
99-
.map_err(|_| ReadFeaturesError::InvalidAttribute(feature_id.into()))?;
101+
.map_err(|_| ReadFeaturesError::InvalidAttribute(feature_id.into()))
102+
.and_then(|value| match value {
103+
Value::String(s) => Ok(s),
104+
Value::Array(_) => Err(ReadFeaturesError::InvalidAttribute(feature_id.into())),
105+
})?;
100106

101107
let list = features.entry(id.into()).or_default();
102108

0 commit comments

Comments
 (0)