A Python implementation of Rust's Option and Result
Project description
🤷 Option and Result
This library uses code copied and pasted from Peijun Ma's option
library, which they have generously published under the MIT license. 🙏
This is a Python implementation of Rust's Option
and Result
types in order to help make fallible functions identifiable and more robust than typical exceptions.
💻 Installation
This package is published to PyPI as babichjacob-option-and-result
.
🛠 Usage
from option_and_result import NONE, Some, Ok, Err
maybe_a_number = Some(17)
assert maybe_a_number.unwrap() == 17
nothing = NONE()
assert nothing.is_none()
number_result = maybe_a_number.ok_or("not a number")
assert number_result == Ok(17)
result_that_is_err = Err("gah! an error!")
combinatoric_result = number_result.and_(result_that_is_err)
assert combinatoric_result.unwrap_err() == "gah! an error!"
# more methods on Options and Results are available like the Rust documentation shows
# there is also MatchesNone, MatchesSome, MatchesOk, and MatchesErr
# for use with Python 3.10's new structural pattern matching feature
😵 Help! I have a question
Create an issue and I'll try to help.
😡 Fix! There is something that needs improvement
Create an issue or pull request and I'll try to fix.
📄 License
MIT
🙏 Attribution
This README was generated with ❤️ by readme-md-generator
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file babichjacob_option_and_result-0.2.3.tar.gz
.
File metadata
- Download URL: babichjacob_option_and_result-0.2.3.tar.gz
- Upload date:
- Size: 8.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.3.2 CPython/3.11.2 Linux/5.15.0-1034-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 0952ad5c1d9d4fdc118d4400094015dbb7bc1390a76c0c42201c97d348bb8a1e |
|
MD5 | c8421c704f7ebc52f43a41014fa2a362 |
|
BLAKE2b-256 | fa653cdb49321557dade4ae4387fa92ade787577519dcf4d6a6133db3d60e5e5 |
File details
Details for the file babichjacob_option_and_result-0.2.3-py3-none-any.whl
.
File metadata
- Download URL: babichjacob_option_and_result-0.2.3-py3-none-any.whl
- Upload date:
- Size: 7.5 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.3.2 CPython/3.11.2 Linux/5.15.0-1034-azure
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bac084ccb0c0771cf8ad2addb63f9451345e7e9d90363ba2570eb3cfb5ef4f38 |
|
MD5 | d39551cc51f764388b4868915d72c416 |
|
BLAKE2b-256 | e1718f3440d8ff109e6104561d3f99714a9cdfd01ea42c6ec0f3226b99c0edfd |