From 3e344373ef6209b78d8d9753092e4eecb0d8a772 Mon Sep 17 00:00:00 2001 From: aiongg Date: Mon, 19 Oct 2026 13:14:15 +0000 Subject: [PATCH] keymap: put overrides_list on the craft-settings example in the crate docs --- crates/keymap/src/lib.rs | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/crates/keymap/src/lib.rs b/crates/keymap/src/lib.rs index a54f0756..0fe2107b 100644 --- a/crates/keymap/src/lib.rs +++ b/crates/keymap/src/lib.rs @@ -63,10 +63,11 @@ //! //! # Storing overrides //! -//! [`Overrides`] is a field of the app's craft-settings type. It is stored as an array of -//! `{ command, keys }` tables, not as a table keyed by command: craft-settings merges tables key -//! by key with what the file holds, but replaces an array whole, so a reset command (an entry -//! removed) stays removed after saving. +//! [`Overrides`] is a field of the app's craft-settings type, marked +//! `#[serde(with = "craft_keymap::keymap::overrides_list")]` so that it is stored as an array of +//! `{ command, keys }` tables. craft-settings merges tables key by key with what the file holds, +//! but replaces an array whole, so a reset command (an entry removed) stays removed after saving. +//! Without the attribute, overrides with at most one text per command are written as a table. //! //! ```no_run //! use craft_keymap::{Binding, Keymap, Overrides, Platform, Policy, Profiles, Scopes}; @@ -76,6 +77,7 @@ //! #[derive(Serialize, Deserialize, Default, Clone, PartialEq)] //! #[serde(default)] //! struct Prefs { +//! #[serde(with = "craft_keymap::keymap::overrides_list")] //! shortcuts: Overrides, //! shortcut_sets: Profiles, //! }