Split remaining cast implementations out of cast/mod.rs
- Dominant language
- Rust
- Stars
- 3.6k
- Forks
- 1.3k
- Avg merge
- 2d 18h
- Merged PRs (30d)
- 169
Description
### Is your feature request related to a problem or challenge?
Follow-up to #5125. This issue captures the remaining implementation work identified after the original module extractions.
Previous work extracted list, decimal, dictionary, string, map, run-array, and union functionality into private submodules. However, `arrow-cast/src/cast/mod.rs` still contains several cohesive groups of implementation helpers around the top-level cast kernel.
This makes the module harder to navigate and leaves additional opportunities to continue the functional separation started by #5125.
### Describe the solution you'd like
Move the remaining cohesive implementation helpers into private submodules while retaining `cast_with_options` as the centralized top-level dispatcher.
Potential groups include:
- [ ] Temporal helpers for timestamps, dates, durations, intervals, and timezones
- [ ] Numeric and boolean conversion helpers
- [ ] Binary, fixed-size binary, and byte-view conversion helpers
- [ ] Struct conversion helpers
- [ ] Remaining decimal adapters, including integer-to-decimal and generic decimal routing helpers
These groups can be extracted in separate PRs linked to this issue.
The extractions should:
- Avoid behavioral changes
- Preserve existing public API paths
- Re-export public helpers already used by other workspace crates
- Keep the top-level source/target dispatch centralized
- Keep individual PRs small enough to review independently
### Additional context
Related extractions include #5537, #5552, #5555, and #5563.
Together with the separate test-reorganization follow-up, this issue supersedes the remaining work under #5125 and allows that umbrella issue to be closed.
### AI usage disclosure
This issue was drafted with assistance from OpenAI Codex. Codex was used to inspect the existing `arrow-cast` module structure and the changes made by related PRs. No code changes were generated or made.
Contributor guide
Research direction
Start in arrow-cast/src/cast/mod.rs and read the related extractions in #5537, #5552, #5555, and #5563. Use cast_with_options as the centralized dispatch entry point and identify one cohesive helper group to extract first. Done means behavior and public API paths are unchanged, required helpers remain re-exported, and the extraction is small enough for independent review.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- data-engineering
- Issue type
- Refactor
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 48/100