{"id":22296786,"url":"https://github.com/someguynamedjosh/scones","last_synced_at":"2025-07-29T01:32:33.530Z","repository":{"id":57666360,"uuid":"304521637","full_name":"someguynamedjosh/scones","owner":"someguynamedjosh","description":"Quick and powerful constructor/builder generation for Rust.","archived":false,"fork":false,"pushed_at":"2020-11-04T04:56:57.000Z","size":38,"stargazers_count":10,"open_issues_count":1,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2024-05-30T01:20:01.632Z","etag":null,"topics":["boilerplate","builder","builder-pattern","constructor","generated-code","macro","proc-macro","rust"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/someguynamedjosh.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2020-10-16T04:44:01.000Z","updated_at":"2024-03-29T04:25:06.000Z","dependencies_parsed_at":"2022-09-26T20:31:44.719Z","dependency_job_id":null,"html_url":"https://github.com/someguynamedjosh/scones","commit_stats":null,"previous_names":["someguynamedjosh/scones","joshua-maros/scones"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/someguynamedjosh%2Fscones","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/someguynamedjosh%2Fscones/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/someguynamedjosh%2Fscones/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/someguynamedjosh%2Fscones/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/someguynamedjosh","download_url":"https://codeload.github.com/someguynamedjosh/scones/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":227968285,"owners_count":17848929,"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":["boilerplate","builder","builder-pattern","constructor","generated-code","macro","proc-macro","rust"],"created_at":"2024-12-03T17:47:39.203Z","updated_at":"2024-12-03T17:47:39.815Z","avatar_url":"https://github.com/someguynamedjosh.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Scones\n\n[![Scones on Crates.IO](https://img.shields.io/crates/v/scones)](https://crates.io/crates/scones)\n[![Documentation](https://img.shields.io/badge/documentation-link-success)](https://docs.rs/scones)\n[![Examples](https://img.shields.io/badge/examples-link-success)](https://docs.rs/scones_examples)\n\nA crate for quick and powerful constructor/builder generation in Rust. Dual\nlicensed under `MIT OR Apache-2.0`. Example:\n\n```rust\nuse scones::{make_builder, make_constructor};\n\n#[make_builder]\n#[make_constructor]\nstruct Basic {\n    int: i32,\n    string: String,\n}\nlet instance = Basic::new(int, string);\nlet instance = BasicBuilder::new().string(\"str\".to_owned()).int(12345).build();\n// Triggers a compile-time error because we have not specified all fields yet:\n// let instance = BasicBuilder::new().build();\n\n#[make_constructor]\n#[make_constructor(pub new_identical(shared: i32))]\npub struct MultipleConstructors {\n    #[value(shared for new_identical)]\n    pub a: i32,\n    #[value(shared for new_identical)]\n    pub b: i32,\n    #[value(shared for new_identical)]\n    pub c: i32,\n\n    #[value(true)]\n    #[value(false for new)]\n    pub identical: bool,\n}\nlet instance = MultipleConstructors::new(1, 2, 3);\nlet instance = MultipleConstructors::new_identical(123);\n\n#[make_constructor]\n#[make_constructor(pub default_number)]\n#[make_builder((field_1?))]\npub struct TupleStruct(\n    #[value(30 for default_number)] i32,\n    #[value(\"Unnamed\".to_owned() for TupleStructBuilder)] String,\n);\nlet instance = TupleStruct::default_number(field_1);\nlet instance = TupleStructBuilder::new().field_0(12345).build();\n```\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsomeguynamedjosh%2Fscones","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsomeguynamedjosh%2Fscones","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsomeguynamedjosh%2Fscones/lists"}