# fieldenum
Rust-like fielded Enums in Python
**[한국어로 보기](docs/README-ko.md)**
## Examples
```python
from fieldenum import fieldenum, Unit, Variant
@fieldenum
class Message:
Quit = Unit
Move = Variant(x=int, y=int)
Write = Variant(str)
ChangeColor = Variant(int, int, int)
# Corresponding code in Rust:
# enum Message {
# Quit,
# Move { x: i32, y: i32 },
# Write(String),
# ChangeColor(i32, i32, i32),
# }
# usage
message = Message.Quit
message = Message.Move(x=1, y=2)
message = Message.Write("hello, world!")
message = Message.ChangeColor(256, 256, 0)
```
## Credits
This project is heavily influenced by [Rust's `Enum`](https://doc.rust-lang.org/reference/items/enumerations.html), and also borrows some of its design from [rust_enum](https://github.com/girvel/rust_enum).
## Releases
* 0.1.0: initial release
Raw data
{
"_id": null,
"home_page": null,
"name": "fieldenum",
"maintainer": null,
"docs_url": null,
"requires_python": "<4.0,>=3.12",
"maintainer_email": null,
"keywords": "enum, dataclass, rust, functional-programming",
"author": "ilotoki0804",
"author_email": "ilotoki0804@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/fa/1a/aa7502fb35d3d07709804feb66f91b6a27e353efd3f1c36c606c7e362f33/fieldenum-0.1.0.tar.gz",
"platform": null,
"description": "# fieldenum\n\nRust-like fielded Enums in Python\n\n**[\ud55c\uad6d\uc5b4\ub85c \ubcf4\uae30](docs/README-ko.md)**\n\n## Examples\n\n```python\nfrom fieldenum import fieldenum, Unit, Variant\n\n@fieldenum\nclass Message:\n Quit = Unit\n Move = Variant(x=int, y=int)\n Write = Variant(str)\n ChangeColor = Variant(int, int, int)\n\n# Corresponding code in Rust:\n# enum Message {\n# Quit,\n# Move { x: i32, y: i32 },\n# Write(String),\n# ChangeColor(i32, i32, i32),\n# }\n\n\n# usage\nmessage = Message.Quit\nmessage = Message.Move(x=1, y=2)\nmessage = Message.Write(\"hello, world!\")\nmessage = Message.ChangeColor(256, 256, 0)\n```\n\n## Credits\n\nThis project is heavily influenced by [Rust's `Enum`](https://doc.rust-lang.org/reference/items/enumerations.html), and also borrows some of its design from [rust_enum](https://github.com/girvel/rust_enum).\n\n## Releases\n\n* 0.1.0: initial release\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Rust-like fielded Enums in Python",
"version": "0.1.0",
"project_urls": {
"Repository": "https://github.com/ilotoki0804/fieldenum"
},
"split_keywords": [
"enum",
" dataclass",
" rust",
" functional-programming"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "72e7101337275901ac246f5fe64c7c5b7dd925d3bfc1b3fd2df0f4d4b7b8242e",
"md5": "1fb46c8c32474182f44dc7d3d88a7bc2",
"sha256": "d32bfc9238e264e3bfff03aec9e85d0d7b40e05577a55fcd8779d9d4608776e0"
},
"downloads": -1,
"filename": "fieldenum-0.1.0-py3-none-any.whl",
"has_sig": false,
"md5_digest": "1fb46c8c32474182f44dc7d3d88a7bc2",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": "<4.0,>=3.12",
"size": 8232,
"upload_time": "2024-05-29T13:41:07",
"upload_time_iso_8601": "2024-05-29T13:41:07.016192Z",
"url": "https://files.pythonhosted.org/packages/72/e7/101337275901ac246f5fe64c7c5b7dd925d3bfc1b3fd2df0f4d4b7b8242e/fieldenum-0.1.0-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "fa1aaa7502fb35d3d07709804feb66f91b6a27e353efd3f1c36c606c7e362f33",
"md5": "8cbc0ddf5feae7f2ffcfaf081457f874",
"sha256": "a6eecbb06bb03ee8c88d9abc9f4158b584f635efade296ce23544e1c8ec72b66"
},
"downloads": -1,
"filename": "fieldenum-0.1.0.tar.gz",
"has_sig": false,
"md5_digest": "8cbc0ddf5feae7f2ffcfaf081457f874",
"packagetype": "sdist",
"python_version": "source",
"requires_python": "<4.0,>=3.12",
"size": 7465,
"upload_time": "2024-05-29T13:41:08",
"upload_time_iso_8601": "2024-05-29T13:41:08.775892Z",
"url": "https://files.pythonhosted.org/packages/fa/1a/aa7502fb35d3d07709804feb66f91b6a27e353efd3f1c36c606c7e362f33/fieldenum-0.1.0.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-05-29 13:41:08",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "ilotoki0804",
"github_project": "fieldenum",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "fieldenum"
}