Skip to content

Split remaining cast implementations out of cast/mod.rs #11032

Description

@sdf-jkl

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.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementAny new improvement worthy of a entry in the changeloggood first issueGood for newcomers

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions