mirror of
https://github.com/storytold/figcraft.git
synced 2026-11-08 19:42:05 +00:00
Style-heavy files: a repeated name keeps its first place, and one more lookup uses the id set
This commit is contained in:
1 parent
03aa619fba
commit
7eac937acc
2 files changed
+2
-2
No files matched your search
@@ -2157,7 +2157,7 @@ fn import_themed_tokens(
|
||||
}
|
||||
// Each set's place in the order once: a position search per comparison was quadratic in
|
||||
// the order's length for every one of the sort's comparisons.
|
||||
let place: BTreeMap<&str, usize> = order.iter().enumerate().map(|(i, o)| (*o, i)).collect();
|
||||
let place: BTreeMap<&str, usize> = order.iter().enumerate().rev().map(|(i, o)| (*o, i)).collect();
|
||||
set_names.sort_by_key(|name| place.get(name).copied().unwrap_or(usize::MAX));
|
||||
let set_names: Vec<&str> = set_names.into_iter().take(512).collect();
|
||||
let mut tokens: BTreeMap<&str, BTreeMap<String, &Value>> = BTreeMap::new();
|
||||
|
||||
@@ -922,7 +922,7 @@ impl<'a> Ctx<'a> {
|
||||
fn style_definitions(&mut self, v: &'a Value) {
|
||||
for d in list(v, "styleDefinitions").iter().take(MAX_STYLES) {
|
||||
let (Some(id), Some(node)) = (text(d, "id").filter(|i| !i.is_empty()).map(clip_str), d.get("node")) else { continue };
|
||||
if self.doc.styles.iter().any(|s| s.id == id) {
|
||||
if self.style_ids.contains(id) {
|
||||
continue;
|
||||
}
|
||||
let kind = match text(d, "styleType") {
|
||||
|
||||
Reference in new issue
Block a user