summaryrefslogtreecommitdiff
path: root/crates/typst-library/src/loading/read.rs
diff options
context:
space:
mode:
Diffstat (limited to 'crates/typst-library/src/loading/read.rs')
-rw-r--r--crates/typst-library/src/loading/read.rs11
1 files changed, 4 insertions, 7 deletions
diff --git a/crates/typst-library/src/loading/read.rs b/crates/typst-library/src/loading/read.rs
index 23e6e27e..bf363f84 100644
--- a/crates/typst-library/src/loading/read.rs
+++ b/crates/typst-library/src/loading/read.rs
@@ -1,7 +1,7 @@
use ecow::EcoString;
use typst_syntax::Spanned;
-use crate::diag::{At, SourceResult};
+use crate::diag::{At, FileError, SourceResult};
use crate::engine::Engine;
use crate::foundations::{func, Cast};
use crate::loading::Readable;
@@ -42,12 +42,9 @@ pub fn read(
let data = engine.world.file(id).at(span)?;
Ok(match encoding {
None => Readable::Bytes(data),
- Some(Encoding::Utf8) => Readable::Str(
- std::str::from_utf8(&data)
- .map_err(|_| "file is not valid utf-8")
- .at(span)?
- .into(),
- ),
+ Some(Encoding::Utf8) => {
+ Readable::Str(data.to_str().map_err(FileError::from).at(span)?)
+ }
})
}