{"id":19361293,"url":"https://github.com/zmitchell/wickerman","last_synced_at":"2025-04-23T12:32:31.460Z","repository":{"id":134799559,"uuid":"120248152","full_name":"zmitchell/wickerman","owner":"zmitchell","description":"Learn Rust procedural macros with Nic Cage","archived":false,"fork":false,"pushed_at":"2019-06-11T12:44:15.000Z","size":133,"stargazers_count":22,"open_issues_count":2,"forks_count":2,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-04-02T15:11:15.016Z","etag":null,"topics":["bees","macros","procedural-macros","rust","rust-macro"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zmitchell.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE-APACHE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2018-02-05T03:05:50.000Z","updated_at":"2025-02-04T02:41:11.000Z","dependencies_parsed_at":null,"dependency_job_id":"5fdb5e4c-17b6-449a-a4b4-8a8006e2c0ec","html_url":"https://github.com/zmitchell/wickerman","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zmitchell%2Fwickerman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zmitchell%2Fwickerman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zmitchell%2Fwickerman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zmitchell%2Fwickerman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zmitchell","download_url":"https://codeload.github.com/zmitchell/wickerman/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":250435119,"owners_count":21430220,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bees","macros","procedural-macros","rust","rust-macro"],"created_at":"2024-11-10T07:21:45.745Z","updated_at":"2025-04-23T12:32:31.452Z","avatar_url":"https://github.com/zmitchell.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Wickerman\n\nDisplay error messages inspired by The Wicker Man in your Rust code\n\n\u003cp align=\"center\"\u003e\n\u003cimg src=\"not-the-bees-editor.jpg\" width=\"400\"\u003e\n\u003c/p\u003e\n\n## About\n\nThis crate is meant to illustrate how to make a simple procedural macro in Rust. There is an accompanying blog post that explains what procedural macros are and how to make them:\n\n* [Introdution to Procedural Macros](https://tinkering.xyz/introduction-to-proc-macros/)\n\nTo see the error message above, add `wickerman` as a dependency in your `Cargo.toml`:\n```toml\n# Cargo.toml\n[dependencies]\nwickerman = {git = \"https://github.com/zmitchell/wickerman\"}\n```\n\nthen use `wickerman::wickerman` in a crate with procedural macros enabled:\n```rust\n#![feature(proc_macro)]\n\nextern crate wickerman;\nuse wickerman::wickerman;\n```\n\nand, finally, apply the `#[wickerman]` attribute to a struct containing a field named \"bees\".\n\n```rust\n#[wickerman]\nstruct Foo {\n    bees: i32,\n}\n```\n\nTo see even more absurd error messages, add the `go-nuts` feature to `Cargo.toml`, and apply the attribute to a struct with several fields.\n\n```toml\n# Cargo.toml\n[dependencies]\nwickerman = {git = \"https://github.com/zmitchell/wickerman\", features = [\"go-nuts\"]}\n```\n\n## License\n\nLicensed under either of\n\n * Apache License, Version 2.0, ([LICENSE-APACHE](LICENSE-APACHE) or http://www.apache.org/licenses/LICENSE-2.0)\n * MIT license ([LICENSE-MIT](LICENSE-MIT) or http://opensource.org/licenses/MIT)\n\nat your option.\n\n### Contribution\n\nUnless you explicitly state otherwise, any contribution intentionally\nsubmitted for inclusion in the work by you, as defined in the Apache-2.0\nlicense, shall be dual licensed as above, without any additional terms or\nconditions.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzmitchell%2Fwickerman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzmitchell%2Fwickerman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzmitchell%2Fwickerman/lists"}