mirror of
https://github.com/FuelLabs/sway.git
synced 2025-08-10 05:39:05 +00:00
![]() ## Description Introduces the following functions to be implemented: - `zero()` - `is_zero()` This falls inline with what we see in [Rust's Zero Trait](https://docs.rs/num/latest/num/traits/trait.Zero.html), making the language feel and look more like Rust. This PR also deprecates the following: - `ZERO_B256` -> `b256::zero()` - `ZERO_U256` -> `u256::zero()` To define a `u256` or `b256` zero address, the following should be used: ```sway let zero_b256 = b256::zero(); let zero_u256 = u256::zero(); ``` A common use of the `ZERO_B256` was to define the zero addresses and contract id`: ```sway let zero_address = Address::from(ZERO_B256); let zero_contract = ContractId::from(ZERO_B25); ``` The following is now possible: ```sway let zero_address = Address::zero(); let zero_contract = ContractId::zero(); ``` The following types now implement the `Zero` trait: - `u8` - `u16` - `u32` - `u64` - `u256` - `b256` - `SubId` - `AssetId` - `ContractId` - `Address` - `EvmAddress` - `U128` - `B512` Closes #5830 ## Checklist - [x] I have linked to any relevant issues. - [x] I have commented my code, particularly in hard-to-understand areas. - [x] I have updated the documentation where relevant (API docs, the reference, and the Sway book). - [ ] If my change requires substantial documentation changes, I have [requested support from the DevRel team](https://github.com/FuelLabs/devrel-requests/issues/new/choose) - [x] I have added tests that prove my fix is effective or that my feature works. - [x] I have added (or requested a maintainer to add) the necessary `Breaking*` or `New Feature` labels where relevant. - [x] I have done my best to ensure that my PR adheres to [the Fuel Labs Code Review Standards](https://github.com/FuelLabs/rfcs/blob/master/text/code-standards/external-contributors.md). - [x] I have requested a review from the relevant team or maintainers. --------- Co-authored-by: K1-R1 <77465250+K1-R1@users.noreply.github.com> |
||
---|---|---|
.. | ||
main.sw |