Files
craft-libs/vendor/linesweeper/README.craft.md
T
.CooCoo d624d5895a linesweeper: line_segment's doc says it can return an exited segment
A segment that exits at a sweep line keeps its position until the sweep advances, and segment_range leaves it out.

---------

Co-authored-by: dotCooCoo <RobertLeeLW@gmail.com>
2026-11-12 10:06:02 -05:00

2.8 KiB

Local linesweeper 0.5.0 copy

This is the crates.io linesweeper 0.5.0 package (MIT OR Apache-2.0) with some files left out and the local patch listed below. .cargo_vcs_info.json names the commit it was packaged from, 824b0791a750f7b27b8edcbb6c6244d0e629875e. That commit is not in the GitHub repository the manifest names, which is archived; its README says development moved off GitHub.

Every file here except this one, SOURCE.json and the patched file below is byte for byte the file in the .crate archive. SOURCE.json records the hash of the .crate download (source_archive_sha256) and, for every file kept, the hash in the package (source_sha256) and the hash here (sha256). upstream_repository is null because no public repository this copy can name holds upstream_revision. local_patches describes the local patch.

Local patches

File Change
src/sweep/sweep_line.rs The doc comment of SweepLine::line_segment says it can return a segment that has exited, which segment_range leaves out. Code comments label the change Craft patch (exited slots).

omitted_files lists the 43 files of the package left out here, with their hashes:

  • tests/fonts/Inconsolata-Regular.ttf: font files live in craft-fonts.
  • docs/assets/logo.svg and examples/linebender.svg: the package gives no license for this artwork apart from its license field.
  • tests/snapshots/: 12 SVG and 20 PNG files.
  • .config/, .helix/, .typos.toml, .gitmodules, flake.nix, flake.lock and nix/: the package's repository tooling.

Only the targets listed under Tests read the font, the logos and the snapshot files, and those targets do not compile from the published package.

Using it

The directory is excluded from the workspace. With the root manifest's [patch.crates-io] entry, craft-prepress builds its flatten feature against this copy. Cargo ignores a dependency's patches, so a consuming workspace adds its own entry:

[patch.crates-io]
linesweeper = { git = "https://github.com/storytold/craft-libs", rev = "<rev>" }

Tests

scripts/test-pdf-backends.sh runs the package's unit, regression and doc tests. The craft-prepress tests with the flatten feature run against this copy. pdf.yml's path filter does not list this directory, so a pull request that changes only files here does not start pdf.yml. Run the tests from this directory:

cargo test --locked --lib --test regression
cargo test --locked --doc

Cargo.toml leaves out the kompari, linesweeper_util and path-bool dev-dependencies, which Cargo.toml.orig gives as git or path dependencies. The fonts and snapshots tests, the winding-numbers and boolean_op examples and the linebender_logo bench do not compile here.

Cargo writes to target/ in this directory, which the root .gitignore excludes.