style: apply cargo fmt across workspace

This commit is contained in:
Karim Jerbi committed 2026-10-11 03:14:29 +01:00
1 parent 85710e5454
commit 9cf9ff2c5c
531 files changed
+57740 -33906

No files matched your search

+90 -21
View File
@@ -151,7 +151,12 @@ pub fn page_content_by_layer(
let base = page_content(&super::pdf_layers::source_with_layers(path, &names), page)?;
let key = |s: &dyn std::fmt::Debug| format!("{s:?}");
let mut seen: HashMap<String, usize> = HashMap::new();
for item in base.paths.iter().map(|p| key(p)).chain(base.texts.iter().map(|t| key(t))) {
for item in base
.paths
.iter()
.map(|p| key(p))
.chain(base.texts.iter().map(|t| key(t)))
{
*seen.entry(item).or_default() += 1;
}
let mut out = Vec::new();
@@ -159,7 +164,11 @@ pub fn page_content_by_layer(
if hidden.contains(&layer.name) {
continue;
}
let others: Vec<String> = names.iter().filter(|n| **n != layer.name).cloned().collect();
let others: Vec<String> = names
.iter()
.filter(|n| **n != layer.name)
.cloned()
.collect();
let Some(mut only) =
page_content(&super::pdf_layers::source_with_layers(path, &others), page)
else {
@@ -203,7 +212,12 @@ fn images_to_last_layer(
// Each layered path and text keyed once; the first layer holding it wins.
let mut owners: std::collections::HashMap<String, usize> = std::collections::HashMap::new();
for (n, (_, pv)) in layered.iter().enumerate() {
for item in pv.paths.iter().map(|p| key(p)).chain(pv.texts.iter().map(|t| key(t))) {
for item in pv
.paths
.iter()
.map(|p| key(p))
.chain(pv.texts.iter().map(|t| key(t)))
{
owners.entry(item).or_insert(n);
}
}
@@ -218,7 +232,9 @@ fn images_to_last_layer(
let image = &full.images[i];
if let Some(n) = layered.iter().position(|(_, pv)| pv.images.contains(image)) {
last = Some(n);
} else if let (Some(n), Some(at)) = (last, base.images.iter().position(|b| b == image)) {
} else if let (Some(n), Some(at)) =
(last, base.images.iter().position(|b| b == image))
{
moves.push((n, base.images.remove(at)));
}
}
@@ -268,7 +284,10 @@ fn read_page_with(path: &str, page: &str, images: bool) -> Option<PageVectors> {
.and_then(|dict| dict.get::<Name>(b"BaseFont"))
.map(|name| String::from_utf8_lossy(&name).into_owned())
.unwrap_or_default();
let name = name.split_once('+').map(|(_, rest)| rest.to_string()).unwrap_or(name);
let name = name
.split_once('+')
.map(|(_, rest)| rest.to_string())
.unwrap_or(name);
if !names.contains(&name) {
names.push(name);
}
@@ -276,7 +295,10 @@ fn read_page_with(path: &str, page: &str, images: bool) -> Option<PageVectors> {
}
let mut texts = device.texts;
for text in &mut texts {
let index = device.font_order.iter().position(|key| *key == text.font_key);
let index = device
.font_order
.iter()
.position(|key| *key == text.font_key);
text.text.font = index
.and_then(|i| names.get(i).cloned())
.filter(|name| !name.is_empty())
@@ -344,7 +366,10 @@ fn subpaths(path: &BezPath, transform: Affine) -> Vec<SubPath> {
match *el {
PathEl::MoveTo(p) => {
let p = transform * p;
out.push(SubPath { segments: Vec::new(), closed: false });
out.push(SubPath {
segments: Vec::new(),
closed: false,
});
start = p;
last = p;
}
@@ -360,14 +385,16 @@ fn subpaths(path: &BezPath, transform: Affine) -> Vec<SubPath> {
let c1 = last + (c - last) * (2.0 / 3.0);
let c2 = p + (c - p) * (2.0 / 3.0);
if let Some(sp) = out.last_mut() {
sp.segments.push(Segment::Cubic(pt(last), pt(c1), pt(c2), pt(p)));
sp.segments
.push(Segment::Cubic(pt(last), pt(c1), pt(c2), pt(p)));
}
last = p;
}
PathEl::CurveTo(c1, c2, p) => {
let (c1, c2, p) = (transform * c1, transform * c2, transform * p);
if let Some(sp) = out.last_mut() {
sp.segments.push(Segment::Cubic(pt(last), pt(c1), pt(c2), pt(p)));
sp.segments
.push(Segment::Cubic(pt(last), pt(c1), pt(c2), pt(p)));
}
last = p;
}
@@ -385,7 +412,10 @@ fn subpaths(path: &BezPath, transform: Affine) -> Vec<SubPath> {
out.retain(|sp| !sp.segments.is_empty());
// A path drawn back to its start without a close operator is closed.
for sp in &mut out {
let (first, last) = (sp.segments[0].start(), sp.segments[sp.segments.len() - 1].end());
let (first, last) = (
sp.segments[0].start(),
sp.segments[sp.segments.len() - 1].end(),
);
if !sp.closed && (first[0] - last[0]).hypot(first[1] - last[1]) < 1e-9 {
sp.closed = true;
}
@@ -396,7 +426,13 @@ fn subpaths(path: &BezPath, transform: Affine) -> Vec<SubPath> {
impl<'a> Device<'a> for Collector {
fn set_soft_mask(&mut self, _: Option<SoftMask<'a>>) {}
fn set_blend_mode(&mut self, _: BlendMode) {}
fn draw_path(&mut self, path: &BezPath, transform: Affine, paint: &Paint<'a>, mode: &PathDrawMode) {
fn draw_path(
&mut self,
path: &BezPath,
transform: Affine,
paint: &Paint<'a>,
mode: &PathDrawMode,
) {
self.finish_text();
let subpaths = subpaths(path, transform);
if subpaths.is_empty() {
@@ -412,7 +448,11 @@ impl<'a> Device<'a> for Collector {
PathDrawMode::Fill(_) => (None, Some(rgb(paint))),
};
self.order.push(Drawn::Path(self.paths.len()));
self.paths.push(PdfPath { subpaths, stroke, fill });
self.paths.push(PdfPath {
subpaths,
stroke,
fill,
});
}
fn push_clip_path(&mut self, _: &ClipPath) {}
fn push_transparency_group(&mut self, _: f32, _: Option<SoftMask<'a>>, _: BlendMode) {}
@@ -593,7 +633,9 @@ pub fn circle_of(sp: &SubPath) -> Option<([f64; 2], f64)> {
}
let tol = r * 2e-3;
let on_circle = cubics.iter().all(|s| {
[0.0, 0.25, 0.5, 0.75].iter().all(|t| (dist(bezier(s, *t)) - r).abs() <= tol)
[0.0, 0.25, 0.5, 0.75]
.iter()
.all(|t| (dist(bezier(s, *t)) - r).abs() <= tol)
});
on_circle.then_some((c, r))
}
@@ -602,7 +644,11 @@ pub fn circle_of(sp: &SubPath) -> Option<([f64; 2], f64)> {
/// PDFOSNAP, DWFOSNAP and DGNOSNAP: whether object snaps find the geometry
/// inside underlays of each kind.
static UNDERLAY_OSNAP: [AtomicBool; 3] = [AtomicBool::new(true), AtomicBool::new(true), AtomicBool::new(true)];
static UNDERLAY_OSNAP: [AtomicBool; 3] = [
AtomicBool::new(true),
AtomicBool::new(true),
AtomicBool::new(true),
];
fn osnap_slot(kind: codec::entities::UnderlayType) -> &'static AtomicBool {
match kind {
@@ -623,7 +669,11 @@ pub fn set_underlay_osnap(kind: codec::entities::UnderlayType, on: bool) {
/// UOSNAP: 1 when snaps find every kind of underlay geometry, 0 when none,
/// 2 when the kinds differ.
pub fn uosnap() -> i16 {
match UNDERLAY_OSNAP.iter().filter(|s| s.load(Ordering::Relaxed)).count() {
match UNDERLAY_OSNAP
.iter()
.filter(|s| s.load(Ordering::Relaxed))
.count()
{
0 => 0,
n if n == UNDERLAY_OSNAP.len() => 1,
_ => 2,
@@ -648,7 +698,9 @@ pub fn underlay_snap_points(
document: &codec::CadDocument,
) -> Vec<(glam::DVec3, crate::scene::model::wire_model::SnapHint)> {
use crate::scene::model::wire_model::SnapHint;
if !underlay_osnap(u.underlay_type) || !u.flags.contains(codec::entities::UnderlayDisplayFlags::ON) {
if !underlay_osnap(u.underlay_type)
|| !u.flags.contains(codec::entities::UnderlayDisplayFlags::ON)
{
return Vec::new();
}
let Some(def) = crate::entities::underlay::definition(u, document) else {
@@ -700,7 +752,12 @@ fn underlay_vectors(
codec::entities::UnderlayType::Pdf => {
page_vectors(&super::pdf_layers::underlay_source(u, &def.file_path), page)
}
kind => super::underlay_vector::page_vectors(kind, &def.file_path, page, &super::pdf_layers::hidden_layers(u)),
kind => super::underlay_vector::page_vectors(
kind,
&def.file_path,
page,
&super::pdf_layers::hidden_layers(u),
),
}
}
@@ -723,7 +780,9 @@ pub fn underlay_snap_geometry(
u: &codec::entities::Underlay,
document: &codec::CadDocument,
) -> Vec<SnapPiece> {
if !underlay_osnap(u.underlay_type) || !u.flags.contains(codec::entities::UnderlayDisplayFlags::ON) {
if !underlay_osnap(u.underlay_type)
|| !u.flags.contains(codec::entities::UnderlayDisplayFlags::ON)
{
return Vec::new();
}
let Some(def) = crate::entities::underlay::definition(u, document) else {
@@ -739,7 +798,11 @@ pub fn underlay_snap_geometry(
// A circle stays one only while the placement scales both axes alike.
let uniform = (u.x_scale.abs() - u.y_scale.abs()).abs() <= 1e-9 * u.x_scale.abs().max(1e-12);
let flatten = |seg: &Segment, points: &mut Vec<[f64; 3]>| {
let steps = if matches!(seg, Segment::Cubic(..)) { 12 } else { 1 };
let steps = if matches!(seg, Segment::Cubic(..)) {
12
} else {
1
};
for k in 1..=steps {
points.push(world(bezier(seg, k as f64 / steps as f64)));
}
@@ -757,14 +820,20 @@ pub fn underlay_snap_geometry(
flatten(seg, &mut points);
}
total += points.len();
out.push(SnapPiece { points, circle: Some((world(c), r * u.x_scale.abs())) });
out.push(SnapPiece {
points,
circle: Some((world(c), r * u.x_scale.abs())),
});
continue;
}
for seg in &sp.segments {
let mut points = vec![world(seg.start())];
flatten(seg, &mut points);
total += points.len();
out.push(SnapPiece { points, circle: None });
out.push(SnapPiece {
points,
circle: None,
});
}
}
}