{"record":{"id":"91289ed012306577","repo":"ajeetdsouza/zoxide","slug":"invalid-utf-8-91289e","errorCode":null,"errorMessage":"invalid utf-8","messagePattern":"invalid utf-8","errorType":"exception","errorClass":"ImportError","httpStatus":null,"severity":"error","filePath":"src/import/z.rs","lineNumber":42,"sourceCode":"pub(crate) struct Iter<R: BufRead> {\n    reader: R,\n    buf: Vec<u8>,\n    line_num: usize,\n    path: PathBuf,\n}\n\nimpl<R: BufRead> Iter<R> {\n    pub(crate) fn new(reader: R, path: PathBuf) -> Self {\n        Self { reader, buf: Vec::new(), line_num: 0, path }\n    }\n\n    fn err(&self, source: anyhow::Error) -> ImportError {\n        ImportError { path: Some(self.path.clone()), line_num: self.line_num, source }\n    }\n\n    fn parse_line(&self, line: &[u8]) -> Result<Dir<'static>, ImportError> {\n        let line =\n            str::from_utf8(line).map_err(|e| self.err(anyhow!(e).context(\"invalid utf-8\")))?;\n        let err = || self.err(anyhow!(\"invalid entry: {line}\"));\n\n        // z stores entries as `path|rank|last_accessed`. Use `rsplitn` so paths\n        // containing `|` are preserved.\n        let mut split = line.rsplitn(3, '|');\n\n        let last_accessed = split.next().ok_or_else(err)?;\n        let last_accessed = last_accessed.parse::<u64>().map_err(|_| err())?;\n\n        let rank = split.next().ok_or_else(err)?;\n        let rank = rank.parse::<f64>().map_err(|_| err())?;\n\n        let path = split.next().ok_or_else(err)?;\n\n        Ok(Dir { path: Cow::Owned(path.to_string()), rank, last_accessed })\n    }\n}\n","sourceCodeStart":24,"sourceCodeEnd":60,"githubUrl":"https://github.com/ajeetdsouza/zoxide/blob/ee594e690642c7d86edd960603dcc1950c02baab/src/import/z.rs#L24-L60","documentation":"Error \"invalid utf-8\" thrown in ajeetdsouza/zoxide.","triggerScenarios":"Thrown at src/import/z.rs:42 when the library encounters an invalid state.","commonSituations":"See trigger scenarios.","solutions":[],"exampleFix":null,"handlingStrategy":null,"validationCode":null,"typeGuard":null,"tryCatchPattern":null,"preventionTips":[],"tags":[],"backgroundTag":null,"analyzedSha":"ee594e690642c7d86edd960603dcc1950c02baab","analyzedAt":"2026-08-16T10:52:10.953Z","schemaVersion":2},"datasetVersion":"2026-08-16T13:17:31.715Z"}