apache / apache/arrow-rs

Split remaining cast implementations out of cast/mod.rs

Open
#11,032 3 comments 0 reactions 0 assignees View on GitHub
enhancement good first issue
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

Open the contributing 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.