Cleaner error handling for tag deserialization

pmeunier
Dec 9, 2021, 12:26 PM
G6UIBL6UJFF6VQHNNC6IOCEQN4D677ZKGNMGGPWP2G7TBCPXDL2QC

Dependencies

  • [2] ZDK3GNDB Tag transactions (including a massive refactoring of errors)
  • [3] AAXP2534 Tags: completing the subcommand
  • [4] QL6K2ZM3 Tags

Change contents

  • replacement in pijul/src/commands/tag.rs at line 164
    [2.6132][2.6132:6211]()
    let tag = libpijul::tag::txn::TagTxn::new(&tag_path).unwrap();
    [2.6132]
    [2.6211]
    let tag = libpijul::tag::txn::TagTxn::new(&tag_path)?;
  • edit in libpijul/src/tag.rs at line 52
    [3.7373]
    [3.7373]
    #[error("Tag file is corrupt")]
    BincodeDe(bincode::Error),
  • replacement in libpijul/src/tag.rs at line 79
    [3.7917][3.7917:7967]()
    let header = bincode::deserialize(&off)?;
    [3.7917]
    [3.7967]
    let header = bincode::deserialize(&off).map_err(TagError::BincodeDe)?;
  • replacement in libpijul/src/tag.rs at line 85
    [3.1850][3.1850:1905]()
    Ok(bincode::deserialize_from(&mut self.file)?)
    [3.1850]
    [3.8008]
    Ok(bincode::deserialize_from(&mut self.file).map_err(TagError::BincodeDe)?)