mirror of
https://github.com/slint-ui/slint.git
synced 2025-10-02 06:41:14 +00:00
Add support for embedding resources in the rust generator
This is relatively straight-forward via a pass in the compiler to collect the resources to embed and then use include_bytes! (once per resource). What's really annoying is that the rust resource enum can't store a &'static [u8] because cbindgen doesn't represent that, probably because the slice representation isn't guaranteed to stay as it is. So instead this, for now, uses raw pointers.
This commit is contained in:
parent
82a7c3e070
commit
1404cb73ae
15 changed files with 105 additions and 98 deletions
|
@ -208,12 +208,19 @@ impl Color {
|
|||
/// system or embedded in the resulting binary. Or they might be URLs to a web server and a downloaded
|
||||
/// is necessary before they can be used.
|
||||
#[derive(Clone, PartialEq, Debug)]
|
||||
#[repr(C)]
|
||||
#[repr(u8)]
|
||||
pub enum Resource {
|
||||
/// A resource that does not represent any data.
|
||||
None,
|
||||
/// A resource that points to a file in the file system
|
||||
AbsoluteFilePath(crate::SharedString),
|
||||
/// A resource that is embedded in the program and accessible via pointer
|
||||
EmbeddedData {
|
||||
/// raw pointer to the read-only data
|
||||
ptr: *const u8,
|
||||
/// size of the embedded data
|
||||
len: usize,
|
||||
},
|
||||
}
|
||||
|
||||
impl Default for Resource {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue