fieldenum


Namefieldenum JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
SummaryRust-like fielded Enums in Python
upload_time2024-05-29 13:41:08
maintainerNone
docs_urlNone
authorilotoki0804
requires_python<4.0,>=3.12
licenseMIT
keywords enum dataclass rust functional-programming
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # 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"
}
        
Elapsed time: 0.44804s