Applied in changeset commit:git|2461caebba1d47ca79cfd4e0a825e6df40f375bd. ---------- [Feature #22118] Introduce Basic Bit Operations into String (#17353) This patch adds the following methods to String class: * String#bit_get(offset, ...hasumikin (hitoshi hasumi)
- [Feature #22118] Introduce Basic Bit Operations into String (hasumikin) - https://bugs.ruby-lang.org/issues/22118#note-6 - Is it OK to have a *temporary* asymmetry where `String#bit_count` doesn't take a bit-order keyword? ...hasumikin (hitoshi hasumi)
I turned the PR ready to review: https://github.com/ruby/ruby/pull/17353 If the requirement written in the current description (and the reconfirmation in #note-6) is just enough, I believe it can go forwardhasumikin (hitoshi hasumi)
#note-7 I do not oppose `bit_put` itself, but my future plan includes introducing a range parameter like: ```ruby data.bit_set(3..19) ``` In the above, you can assume that the `data` is a header managing some resource or a serial ...hasumikin (hitoshi hasumi)
Thank you, Matz. Based on your decisions in #note-5, I've updated the Description to serve as the finalized specification. Summary: - Renamed `bit_at` to `bit_get`, returning `1 | 0 | nil`. - Added the method `bit_set?`, returning `t...hasumikin (hitoshi hasumi)
Memorandom. I had a face-to-face conversation with Matz and Shugo yesterday. > Matz: each_bit should yield `0/1`, not `false/true` > ... (Matz didn't reject it at least) If it is realized, Pretty-Print could make something like t...hasumikin (hitoshi hasumi)
* [Feature #22118] Introduce Basic Bit Operations into String (hasumikin) * Are these methods suitable as the first subset? * Is the `lsb_first:` keyword acceptable?hasumikin (hitoshi hasumi)
This PR implements basic bit operations into String, incorporating revisions made following the discussion (esp. #note-5) PR URL: https://github.com/ruby/ruby/pull/17353 ## Single-bit read and mutation * `String#bit_get(offset, ...hasumikin (hitoshi hasumi)