Skip to content

Implement TryFrom<Bytes> for b256 #6958

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 4 commits into from
Mar 5, 2025
Merged

Conversation

bitzoic
Copy link
Member

@bitzoic bitzoic commented Feb 25, 2025

Description

impl From<Bytes> for b256 has been removed and replaced with impl TryFrom<Bytes> for b256 increasing saftey when converting between the two types. impl Into<Bytes> for b256 and impl TryInto<b256> for Bytes have also been added.

This PR breaks the following implementation:

let mut my_bytes = Bytes::new();
my_bytes.push(1u8);

let result: b256 = b256::from(my_bytes);

The implementation should now be:

let mut my_bytes = Bytes::new();
my_bytes.push(1u8);

// Option 1
let result_1: Option<b256> = b256::try_from(my_bytes);
// Option 2
let result_2 = my_bytes.try_into();

Closes #6994.

Checklist

  • I have linked to any relevant issues.
  • I have commented my code, particularly in hard-to-understand areas.
  • I have updated the documentation where relevant (API docs, the reference, and the Sway book).
  • I have added tests that prove my fix is effective or that my feature works.
  • I have added (or requested a maintainer to add) the necessary Breaking* or New Feature labels where relevant.
  • I have done my best to ensure that my PR adheres to the Fuel Labs Code Review Standards.
  • I have requested a review from the relevant team or maintainers.

@bitzoic bitzoic added lib: std Standard library breaking May cause existing user code to break. Requires a minor or major release. labels Feb 25, 2025
@bitzoic bitzoic self-assigned this Feb 25, 2025
@bitzoic bitzoic requested review from a team as code owners February 25, 2025 14:32
@SwayStar123
Copy link
Contributor

No tests for the new into?

@bitzoic
Copy link
Member Author

bitzoic commented Feb 25, 2025

No tests for the new into?

They already exist and we're automatically generated here

K1-R1
K1-R1 previously approved these changes Feb 25, 2025
@ironcev ironcev temporarily deployed to fuel-sway-bot March 5, 2025 08:49 — with GitHub Actions Inactive
@ironcev ironcev requested a review from a team as a code owner March 5, 2025 10:25
@ironcev ironcev temporarily deployed to fuel-sway-bot March 5, 2025 10:25 — with GitHub Actions Inactive
@ironcev ironcev changed the title Resolve TODO and implement TryFrom<Bytes> for b256 Implement TryFrom<Bytes> for b256 Mar 5, 2025
@ironcev ironcev requested a review from K1-R1 March 5, 2025 10:57
@ironcev ironcev enabled auto-merge (squash) March 5, 2025 11:35
@ironcev ironcev merged commit be5ecbd into master Mar 5, 2025
40 checks passed
@ironcev ironcev deleted the bitzoic-b256-bytez-conversion branch March 5, 2025 13:20
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
breaking May cause existing user code to break. Requires a minor or major release. lib: std Standard library
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Implement TryFrom<Bytes> for b256
7 participants