Merge pull request #1889 from mgeisler/simplify-and-then

Simplify the use of `Option::and_then`
This commit is contained in:
Eric Huss 2022-09-12 09:16:21 -07:00 committed by GitHub
commit c8db0c8ec6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 32 additions and 36 deletions

View File

@ -89,8 +89,7 @@ pub fn execute(args: &ArgMatches) -> Result<()> {
let input_404 = book
.config
.get("output.html.input-404")
.map(toml::Value::as_str)
.and_then(std::convert::identity) // flatten
.and_then(toml::Value::as_str)
.map(ToString::to_string);
let file_404 = get_404_output_file(&input_404);

View File

@ -148,15 +148,12 @@ fn render(
trace!("Render template");
_h.template()
.ok_or_else(|| RenderError::new("Error with the handlebars template"))
.and_then(|t| {
let t = _h
.template()
.ok_or_else(|| RenderError::new("Error with the handlebars template"))?;
let local_ctx = Context::wraps(&context)?;
let mut local_rc = rc.clone();
t.render(r, &local_ctx, &mut local_rc, out)
})?;
Ok(())
}
pub fn previous(

View File

@ -117,13 +117,11 @@ impl HelperDef for RenderToc {
}
// Link
let path_exists = if let Some(path) =
item.get("path")
.and_then(|p| if p.is_empty() { None } else { Some(p) })
{
let path_exists: bool;
match item.get("path") {
Some(path) if !path.is_empty() => {
out.write("<a href=\"")?;
let tmp = Path::new(item.get("path").expect("Error: path should be Some(_)"))
let tmp = Path::new(path)
.with_extension("html")
.to_str()
.unwrap()
@ -141,11 +139,13 @@ impl HelperDef for RenderToc {
}
out.write(">")?;
true
} else {
path_exists = true;
}
_ => {
out.write("<div>")?;
false
};
path_exists = false;
}
}
if !self.no_section_label {
// Section does not necessarily exist