anandghegde opened a new pull request, #11077:
URL: https://github.com/apache/arrow-rs/pull/11077

   # Which issue does this PR close?
   
   Part of #11032 — the **binary, fixed-size binary and byte-view helpers** 
group
   only, so it does not close the issue.
   
   Sibling PRs against the same issue: #11075 (temporal) and #11076 (numeric and
   boolean). All three are independent and move disjoint functions, but each 
adds a
   `mod` line and an import to `mod.rs`, so whichever lands later will want a
   trivial rebase.
   
   # Rationale for this change
   
   `arrow-cast/src/cast/mod.rs` is ~14k lines. #5125 moved list, decimal,
   dictionary, string, map, run-array and union support into private submodules,
   and #11032 lists the groups still inline. The byte-oriented conversions are 
one
   of them.
   
   # What changes are included in this PR?
   
   A new private `arrow-cast/src/cast/binary.rs` holding:
   
   - `cast_numeric_to_binary`
   - `cast_binary_to_fixed_size_binary`
   - `cast_fixed_size_binary_to_binary`
   - `cast_fixed_size_binary_to_binary_view`
   - `cast_byte_container`
   - `cast_view_to_byte`
   
   `cast_with_options` stays the top-level dispatcher in `mod.rs`.
   
   Worth flagging for review:
   
   - **No public API surface is involved here.** Unlike the numeric group in
     #11076, none of these six were `pub`, so `mod.rs` uses a plain
     `use crate::cast::binary::*` rather than a `pub use`. All six are called 
from
     the dispatcher, so all six became `pub(crate)` and nothing stayed private.
   - **`cast_numeric_to_binary` is not adjacent to the rest.** It sits up with 
the
     numeric helpers in `mod.rs` rather than with the other byte conversions, 
but
     it belongs to this group, so it is moved from there.
   - Three imports left orphaned in `mod.rs` by the move are dropped:
     `arrow_data::ByteView`, and `Buffer` from the `arrow_buffer` import list.
   
   # Are these changes tested?
   
   Covered by the existing `arrow-cast` tests — this is a code move, so no new
   tests are warranted and no existing test was modified.
   
   ```
   cargo test -p arrow-cast     379 passed + 12 passed, 0 failed (same as base)
   cargo clippy -p arrow-cast --all-targets -- -D warnings   clean
   cargo fmt -p arrow-cast -- --check                        clean
   cargo build -p arrow                                      builds
   ```
   
   As with the sibling PRs, the faithfulness of the move is checked mechanically
   rather than by eye: extracting the two original line ranges from `HEAD` and
   normalising away the added `pub(crate)` gives a **byte-identical** match 
against
   the new file.
   
   Run on macOS 26.6.2, aarch64-apple-darwin, toolchain 1.98.1 from
   `rust-toolchain.toml`.
   
   # Are there any user-facing changes?
   
   No. No public API change and no behavioural change.
   
   # AI usage disclosure
   
   Written with AI assistance (Claude). The AI performed the mechanical 
extraction
   and ran the verification above; I reviewed the result and own the change.
   
   The moved bodies are unedited, and the byte-identity check is the evidence 
for
   that rather than a reading. The judgement calls — pulling 
`cast_numeric_to_binary`
   out of the numeric neighbourhood, the uniform `pub(crate)`, and the three 
dropped
   imports — are listed above because they are the parts a "pure move" diff 
would
   not otherwise draw attention to.
   


-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: [email protected]

For queries about this service, please contact Infrastructure at:
[email protected]

Reply via email to