{"id":16602684,"url":"https://github.com/drewcassidy/generic-parameterize","last_synced_at":"2025-10-26T22:02:51.146Z","repository":{"id":56416396,"uuid":"523566220","full_name":"drewcassidy/generic-parameterize","owner":"drewcassidy","description":"A Rust attribute for parameterizing generic functions","archived":false,"fork":false,"pushed_at":"2024-06-16T19:51:47.000Z","size":78,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-02T05:18:05.054Z","etag":null,"topics":["parameterization","parameterized-tests","proc-macro-attributes","rust","testing"],"latest_commit_sha":null,"homepage":"","language":"Rust","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mpl-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/drewcassidy.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.md","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":"2022-08-11T02:53:10.000Z","updated_at":"2024-10-24T05:29:11.000Z","dependencies_parsed_at":"2024-06-16T02:53:46.047Z","dependency_job_id":"2752b4d6-4e43-491f-8987-1054fdadab27","html_url":"https://github.com/drewcassidy/generic-parameterize","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drewcassidy%2Fgeneric-parameterize","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drewcassidy%2Fgeneric-parameterize/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drewcassidy%2Fgeneric-parameterize/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/drewcassidy%2Fgeneric-parameterize/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/drewcassidy","download_url":"https://codeload.github.com/drewcassidy/generic-parameterize/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247589834,"owners_count":20963022,"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":["parameterization","parameterized-tests","proc-macro-attributes","rust","testing"],"created_at":"2024-10-12T00:23:22.461Z","updated_at":"2025-10-26T22:02:51.129Z","avatar_url":"https://github.com/drewcassidy.png","language":"Rust","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003e [!IMPORTANT] \n\u003e Migrated to https://git.offworldcolonies.nexus/drewcassidy/generic-parameterize\n\nGeneric Parameterize\n====================\n\nThis crate provides the `parameterize` macro, which allow parameterizing generic functions for applications like unit\ntesting.\n\nfor example,\n\n```rust\nuse generic_parameterize::parameterize;\nuse std::fmt::Debug;\n\n#[parameterize(T = (i32, f32), N = [4, 5, 6])]\n#[test]\nfn test_array\u003cT: Default, const N: usize\u003e() where [T; N]: Default + Debug {\n    let foo: [T; N] = Default::default();\n    println!(\"{:?}\", foo)\n}\n ```\n\ngenerates a module called `test_array` containing functions called `test_array_i32_4`, `test_array_i32_5` etc.\nThe `#[test]` attribute gets copied to the child functions, which in turn call a copy of `test_array`. The result looks\nlike:\n\n```rust\nmod test_array {\n    use std::println;\n    fn test_array\u003cT: Default, const N : usize\u003e() where [T;N]: Default + std::fmt::Debug{\n         let foo: [T;N] = Default::default();\n         println!(\"{:?}\", foo)\n    }\n\n    #[test]\n    fn test_array_i32_4() {test_array::\u003ci32,4\u003e();}\n    #[test]\n    fn test_array_f32_4() {test_array::\u003cf32,4\u003e();}\n    #[test]\n    fn test_array_i32_5() {test_array::\u003ci32,5\u003e();}\n    // etc...\n }\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrewcassidy%2Fgeneric-parameterize","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fdrewcassidy%2Fgeneric-parameterize","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fdrewcassidy%2Fgeneric-parameterize/lists"}