feat!: replace funty with platform-num, remove LinkType#17
Conversation
Adding .gitkeep for PR creation (default mode). This file will be removed when the task is complete. Issue: #16
Replace `funty::Unsigned` and `FuntyPart` in the `LinkType` trait with `LinkReference` from `platform-num`, eliminating the `funty` dependency. - `LinkType` now extends `LinkReference + WrappingAdd` - All `T::funty(n)` calls replaced with `T::from_byte(n)` - Re-export `LinkReference` from crate root for downstream use - Added `num-traits` dependency for `WrappingAdd` bound This unifies the trait hierarchy with `platform-trees` so downstream crates like `doublets-rs` can use a single `T: LinkReference` bound. Closes #16 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
🤖 Solution Draft LogThis log file contains the complete execution trace of the AI solution draft process. 💰 Cost estimation:
📊 Context and tokens usage:
Total: (68.8K + 4.1M cached) input tokens, 13.8K output tokens, $2.837700 cost 🤖 Models used:
📎 Log file uploaded as Gist (1874KB)Now working session is ended, feel free to review and add any feedback on the solution draft. |
✅ Ready to mergeThis pull request is now ready to be merged:
Monitored by hive-mind with --auto-restart-until-mergeable flag |
This reverts commit 8a12d91.
|
We must remove all mentions of |
|
🤖 AI Work Session Started Starting automated work session at 2026-04-14T12:03:23.369Z The PR has been converted to draft mode while work is in progress. This comment marks the beginning of an AI work session. Please wait for the session to finish, and provide your feedback. |
LinkType was a thin wrapper around LinkReference + WrappingAdd. Remove it entirely per review feedback — downstream crates like doublets-rs should use LinkReference directly. WrappingAdd is still needed from num-traits where wrapping arithmetic is used (hybrid.rs, constants.rs, converters.rs, links.rs) until platform-num adds it to LinkReference. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
🤖 Solution Draft LogThis log file contains the complete execution trace of the AI solution draft process. 💰 Cost: $1.787033📊 Context and tokens usage:Claude Opus 4.6:
Total: (57.3K + 2.2M cached) input tokens, 12.5K output tokens, $1.746119 cost Claude Haiku 4.5: Total: (15.0K + 112.1K cached) input tokens, 2.2K / 64K (3%) output tokens, $0.040914 cost 🤖 Models used:
📎 Log file uploaded as Gist (1565KB)Now working session is ended, feel free to review and add any feedback on the solution draft. |
✅ Ready to mergeThis pull request is now ready to be merged:
Monitored by hive-mind with --auto-restart-until-mergeable flag |
|
After linksplatform/Numbers#147 is applied use latest version of https://crates.io/crates/platform-num, now we can fully support LinkReference, and also fully drop num_traits dependency, as https://crates.io/crates/platform-num reexports everything. If something is still missing - report bug at https://github.com/linksplatform/Numbers |
|
🤖 AI Work Session Started Starting automated work session at 2026-04-14T13:00:35.308Z The PR has been converted to draft mode while work is in progress. This comment marks the beginning of an AI work session. Please wait for the session to finish, and provide your feedback. |
LinkReference in platform-num 0.8.0 includes WrappingArithmetic as a supertrait, so explicit + WrappingAdd bounds and the num-traits dependency are no longer needed. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
🤖 Solution Draft LogThis log file contains the complete execution trace of the AI solution draft process. 💰 Cost: $1.101457📊 Context and tokens usage:
Total: (38.2K + 1.3M cached) input tokens, 8.2K output tokens, $1.101457 cost 🤖 Models used:
📎 Log file uploaded as Gist (1031KB)Now working session is ended, feel free to review and add any feedback on the solution draft. |
✅ Ready to mergeThis pull request is now ready to be merged:
Monitored by hive-mind with --auto-restart-until-mergeable flag |
Summary
funtydependency withplatform-num0.8.0 (LinkReferencetrait)LinkTypetrait entirely — all bounds now useLinkReferencedirectlynum-traitsdependency —platform-num0.8.0 re-exportsWrappingAddandLinkReferencenow includesWrappingArithmeticas a supertraitT::funty(n)calls withT::from_byte(n)across the codebaseT: LinkReference + WrappingAddto justT: LinkReferenceLinkReferencefrom crate root for downstream convenienceMotivation
platform-datausedfunty::Unsignedwhileplatform-treesusednum_traits::Unsigned(viaplatform-num::Number). These are different traits from different crates, making it impossible to writeT: data::LinkType + trees::LinkTypewithout dual bounds. WithLinkReferencefromplatform-num0.8.0, both crates now share the same base trait, enabling downstream crates likedoublets-rsto use a singleT: LinkReferencebound.Per review feedback,
LinkTypehas been removed entirely. Per follow-up feedback, upgraded toplatform-num0.8.0 (after Numbers#147) to dropnum-traitsand simplify all bounds to justT: LinkReference.Changes
Cargo.tomlfunty+num-traits→platform-num0.8.0src/link_type.rsLinkTypetrait removed entirelysrc/lib.rsmod link_typeandpub use LinkType; keptpub use LinkReferencesrc/hybrid.rsLinkReferencedirectly (no+ WrappingAdd)src/constants.rsLinkReferencedirectly (no+ WrappingAdd)src/converters.rsLinkReferencedirectly (no+ WrappingAdd)src/links.rsLinkReferencedirectly (no+ WrappingAdd)README.mdLinkReference, removednum-traitsfrom depschangelog.d/Breaking changes
LinkTypetrait removed (replaced byLinkReferencefromplatform-num)FuntyParttrait removed (replaced byLinkReference::from_byte)T::funty(n)→T::from_byte(n)migration required for downstream usersT: LinkTypetoT: LinkReferencenum-traitsno longer a direct dependencyTest plan
cargo buildcompiles cleanlycargo clippy --all-targetspasses with zero warningscargo test --all-featurespasses (all 94 tests + 1 doctest)Closes #16
🤖 Generated with Claude Code