pub fn new_relative(
        workspace_root: impl Into<Utf8PathBuf>,
        crate_dir: impl AsRef<Utf8Path>,
    ) -> Result<Self, CargoTomlError> {
        let mut toml_path = workspace_root.into();
        toml_path.push(crate_dir);
        toml_path.push("Cargo.toml");

        Self::new(toml_path)
    }
Creates a new instance of `HakariCargoToml` at the given workspace root and crate
directory. Reads the contents of the file off of disk.

This is a convenience method around appending `crate_dir` and `Cargo.toml` to
`workspace_root`.

If the path is relative, it is evaluated with respect to the current directory.
tools/hakari/src/cargo_toml.rs