Skip to content

Commit 3a059f8

Browse files
authored
Merge pull request #142 from tcharding/04-30-update-status-column
types: Improve the version specific SSOT docs
2 parents e64104b + 4946066 commit 3a059f8

File tree

13 files changed

+2071
-1956
lines changed

13 files changed

+2071
-1956
lines changed

types/src/v17/mod.rs

+156-147
Large diffs are not rendered by default.

types/src/v18/mod.rs

+158-154
Large diffs are not rendered by default.

types/src/v19/mod.rs

+160-151
Large diffs are not rendered by default.

types/src/v20/mod.rs

+161-152
Large diffs are not rendered by default.

types/src/v21/mod.rs

+167-158
Large diffs are not rendered by default.

types/src/v22/mod.rs

+172-163
Large diffs are not rendered by default.

types/src/v23/mod.rs

+171-162
Large diffs are not rendered by default.

types/src/v24/mod.rs

+175-166
Large diffs are not rendered by default.

types/src/v25/mod.rs

+176-167
Large diffs are not rendered by default.

types/src/v26/mod.rs

+184-175
Large diffs are not rendered by default.

types/src/v27/mod.rs

+184-175
Large diffs are not rendered by default.

types/src/v28/mod.rs

+186-177
Large diffs are not rendered by default.

verify/src/versioned.rs

+21-9
Original file line numberDiff line numberDiff line change
@@ -34,19 +34,31 @@ pub fn methods_and_status(version: Version) -> Result<Vec<Method>> {
3434
.with_context(|| format!("Failed to grep rustdocs in {}", path.display()))?;
3535
let reader = io::BufReader::new(file);
3636

37-
// let re = Regex::new(r"\/\/\! \| ([a-z]+) \| ([.*?]) \|").unwrap();
38-
let re = Regex::new(r"\/\/\! \| ([a-z]+) .* \| ([a-z ()]+?) \|").unwrap();
37+
let re = Regex::new(r"\/\/\! \| ([a-z]+) .* \| ([a-z +]+?) \|.*\|").unwrap();
3938

4039
let mut methods = Vec::new();
4140

4241
for line in reader.lines() {
4342
let line = line?;
4443

44+
let override_status = if line.contains("UNTESTED") {
45+
Some(Status::Untested)
46+
} else if line.contains("TODO") {
47+
Some(Status::Todo)
48+
} else {
49+
None
50+
};
51+
4552
if let Some(caps) = re.captures(&line) {
46-
let name = caps.get(1).unwrap().as_str();
47-
let status = caps.get(2).unwrap().as_str();
48-
let status = status.trim().parse::<Status>()?;
49-
methods.push(Method { name: name.to_string(), status });
53+
let method_name = caps.get(1).unwrap().as_str();
54+
let returns_column = caps.get(2).unwrap().as_str();
55+
56+
let status = match override_status {
57+
Some(status) => status,
58+
None => returns_column.trim().parse::<Status>()?,
59+
};
60+
61+
methods.push(Method { name: method_name.to_string(), status });
5062
}
5163
}
5264
Ok(methods)
@@ -122,10 +134,10 @@ impl FromStr for Status {
122134

123135
fn from_str(s: &str) -> Result<Self, Self::Err> {
124136
match s {
125-
"done" => Ok(Status::Done),
137+
"version" => Ok(Status::Done),
138+
"version + model" => Ok(Status::Done),
126139
"omitted" => Ok(Status::Omitted),
127-
"done (untested)" => Ok(Status::Untested),
128-
"todo" => Ok(Status::Todo),
140+
"returns nothing" | "returns numeric" | "returns boolean" | "returns string"=> Ok(Status::Done),
129141
other => Err(anyhow::Error::msg(format!("unknown status: '{}'", other))),
130142
}
131143
}

0 commit comments

Comments
 (0)