mirror of
https://github.com/emilk/egui.git
synced 2026-08-29 12:50:04 -04:00
Replace JSON with RON for persistence (epi/eframe/glium/web)
This commit is contained in:
@@ -25,8 +25,8 @@ crate-type = ["cdylib", "rlib"]
|
||||
egui = { version = "0.10.0", path = "../egui" }
|
||||
epi = { version = "0.10.0", path = "../epi" }
|
||||
js-sys = "0.3"
|
||||
ron = { version = "0.6", optional = true }
|
||||
serde = { version = "1", optional = true }
|
||||
serde_json = { version = "1", optional = true }
|
||||
tts = { version = "0.14", optional = true } # feature screen_reader
|
||||
wasm-bindgen = "0.2"
|
||||
wasm-bindgen-futures = "0.4"
|
||||
@@ -41,7 +41,7 @@ http = [
|
||||
"web-sys/RequestMode",
|
||||
"web-sys/Response",
|
||||
]
|
||||
persistence = ["egui/persistence", "serde", "serde_json"]
|
||||
persistence = ["egui/persistence", "ron", "serde"]
|
||||
screen_reader = ["tts"] # experimental
|
||||
|
||||
[dependencies.web-sys]
|
||||
|
||||
@@ -189,13 +189,13 @@ pub fn local_storage_remove(key: &str) {
|
||||
|
||||
#[cfg(feature = "persistence")]
|
||||
pub fn load_memory(ctx: &egui::Context) {
|
||||
if let Some(memory_string) = local_storage_get("egui_memory_json") {
|
||||
match serde_json::from_str(&memory_string) {
|
||||
if let Some(memory_string) = local_storage_get("egui_memory_ron") {
|
||||
match ron::from_str(&memory_string) {
|
||||
Ok(memory) => {
|
||||
*ctx.memory() = memory;
|
||||
}
|
||||
Err(err) => {
|
||||
console_error(format!("Failed to parse memory json: {}", err));
|
||||
console_error(format!("Failed to parse memory RON: {}", err));
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -206,12 +206,12 @@ pub fn load_memory(_: &egui::Context) {}
|
||||
|
||||
#[cfg(feature = "persistence")]
|
||||
pub fn save_memory(ctx: &egui::Context) {
|
||||
match serde_json::to_string(&*ctx.memory()) {
|
||||
Ok(json) => {
|
||||
local_storage_set("egui_memory_json", &json);
|
||||
match ron::to_string(&*ctx.memory()) {
|
||||
Ok(ron) => {
|
||||
local_storage_set("egui_memory_ron", &ron);
|
||||
}
|
||||
Err(err) => {
|
||||
console_error(format!("Failed to serialize memory as json: {}", err));
|
||||
console_error(format!("Failed to serialize memory as RON: {}", err));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user