fix: make path resolution relative to project root
this was already how it mostly behaved but there seemed to be exceptions like LSP warnings (in these tests themselves)
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
#![feature(proc_macro_value)]
|
||||
use std::{fs::File, io::Read};
|
||||
use std::{fs::File, io::Read, path::Path};
|
||||
|
||||
use proc_macro::{Delimiter, Group, Literal, Punct, TokenStream, TokenTree};
|
||||
use sha2::Digest;
|
||||
@@ -114,7 +114,10 @@ fn get_sha256sum(buf: &[u8]) -> [u8; 32] {
|
||||
pub fn include_asset(input: TokenStream) -> TokenStream {
|
||||
let path = read_path_literal(input);
|
||||
let mut buf = Vec::new();
|
||||
File::open(path)
|
||||
|
||||
let manifest_dir = std::env::var("CARGO_MANIFEST_DIR").expect("CARGO_MANIFEST_DIR to be set");
|
||||
|
||||
File::open(Path::new(&manifest_dir).join(&path))
|
||||
.expect("couldn't open file")
|
||||
.read_to_end(&mut buf)
|
||||
.expect("error reading file");
|
||||
|
||||
@@ -27,6 +27,10 @@ pub mod file {
|
||||
}
|
||||
}
|
||||
|
||||
/// Similar to [`include_bytes!`], but it returns a lot more information about the file, like
|
||||
/// its mime type, or its sha256sum (could be changed), all at compile time.
|
||||
///
|
||||
/// The path is relative to the package's root.
|
||||
#[macro_export]
|
||||
macro_rules! include_asset {
|
||||
($path:literal) => {
|
||||
|
||||
Reference in New Issue
Block a user