{"id":20974896,"url":"https://github.com/usausa/member-accessor-generator","last_synced_at":"2025-08-19T22:14:05.910Z","repository":{"id":232911481,"uuid":"785128274","full_name":"usausa/member-accessor-generator","owner":"usausa","description":"🐰Fast property accessor generator.","archived":false,"fork":false,"pushed_at":"2025-07-23T12:10:30.000Z","size":65,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-07-23T14:29:30.610Z","etag":null,"topics":["accessor","codegenerator","source-generator","source-generators","sourcegenerator"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/usausa.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","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":"2024-04-11T08:53:49.000Z","updated_at":"2025-07-23T12:10:34.000Z","dependencies_parsed_at":"2025-01-10T11:29:11.194Z","dependency_job_id":"6ba226e7-2e6b-4814-a886-0b2174846a13","html_url":"https://github.com/usausa/member-accessor-generator","commit_stats":null,"previous_names":["usausa/member-accessor-generator"],"tags_count":8,"template":false,"template_full_name":null,"purl":"pkg:github/usausa/member-accessor-generator","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usausa%2Fmember-accessor-generator","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usausa%2Fmember-accessor-generator/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usausa%2Fmember-accessor-generator/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usausa%2Fmember-accessor-generator/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/usausa","download_url":"https://codeload.github.com/usausa/member-accessor-generator/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/usausa%2Fmember-accessor-generator/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":271231131,"owners_count":24723059,"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","status":"online","status_checked_at":"2025-08-19T02:00:09.176Z","response_time":63,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":["accessor","codegenerator","source-generator","source-generators","sourcegenerator"],"created_at":"2024-11-19T04:35:10.910Z","updated_at":"2025-08-19T22:14:05.904Z","avatar_url":"https://github.com/usausa.png","language":"C#","funding_links":[],"categories":["Content"],"sub_categories":["189. [MemberAccessor](https://ignatandrei.github.io/RSCG_Examples/v2/docs/MemberAccessor) , in the [EnhancementClass](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enhancementclass) category"],"readme":"# BunnyTail.MemberAccessor\n\n[![NuGet](https://img.shields.io/nuget/v/BunnyTail.MemberAccessor.svg)](https://www.nuget.org/packages/BunnyTail.MemberAccessor)\n\n## Reference\n\nAdd reference to BunnyTail.MemberAccessor to csproj.\n\n```xml\n  \u003cItemGroup\u003e\n    \u003cPackageReference Include=\"BunnyTail.MemberAccessor\" Version=\"1.2.0\" /\u003e\n  \u003c/ItemGroup\u003e\n```\n\n## MemberAccessor\n\n### Source\n\n```csharp\nusing BunnyTail.MemberAccessor;\n\n[GenerateAccessor]\npublic partial class Data\n{\n    public int Id { get; set; }\n\n    public string Name { get; set; } = default!;\n}\n```\n\n```csharp\nusing BunnyTail.MemberAccessor;\n\nvar accessorFactory = AccessorRegistry.FindFactory\u003cData\u003e();\nvar getter = accessorFactory.CreateGetter\u003cint\u003e(nameof(Data.Id));\nvar setter = accessorFactory.CreateSetter\u003cint\u003e(nameof(Data.Id));\n\nvar data = new Data();\nsetter(data, 123);\nvar id = getter(data);\n```\n\n## Benchmark\n\n```\nBenchmarkDotNet v0.14.0, Windows 11 (10.0.26100.2894)\nAMD Ryzen 9 5900X, 1 CPU, 24 logical and 12 physical cores\n.NET SDK 9.0.102\n  [Host]     : .NET 9.0.1 (9.0.124.61010), X64 RyuJIT AVX2\n  DefaultJob : .NET 9.0.1 (9.0.124.61010), X64 RyuJIT AVX2\n```\n| Method               | Mean       | Error     | StdDev    | Median     | Min        | Max        | P90        | Gen0   | Code Size | Allocated |\n|--------------------- |-----------:|----------:|----------:|-----------:|-----------:|-----------:|-----------:|-------:|----------:|----------:|\n| DirectGetter         |  0.2474 ns | 0.0051 ns | 0.0075 ns |  0.2461 ns |  0.2340 ns |  0.2639 ns |  0.2573 ns |      - |      10 B |         - |\n| PropertyGetter       | 28.2982 ns | 0.3361 ns | 0.4926 ns | 28.2985 ns | 27.3895 ns | 29.2224 ns | 28.8837 ns | 0.0014 |   6,737 B |      24 B |\n| PropertyGetterCashed | 12.0477 ns | 0.2747 ns | 0.4112 ns | 12.0093 ns | 11.2672 ns | 12.9446 ns | 12.6706 ns | 0.0014 |   2,877 B |      24 B |\n| AccessorGetter       | 19.6870 ns | 1.5183 ns | 2.2255 ns | 18.5110 ns | 17.1518 ns | 23.6697 ns | 22.6651 ns | 0.0014 |        NA |      24 B |\n| AccessorGetterCached |  2.9748 ns | 0.0438 ns | 0.0614 ns |  2.9845 ns |  2.8550 ns |  3.1234 ns |  3.0399 ns | 0.0014 |     174 B |      24 B |\n| ExpressionGetter     |  1.4170 ns | 0.0176 ns | 0.0247 ns |  1.4083 ns |  1.3824 ns |  1.4858 ns |  1.4424 ns |      - |      54 B |         - |\n| GeneratorGetter      |  0.2493 ns | 0.0051 ns | 0.0077 ns |  0.2484 ns |  0.2346 ns |  0.2673 ns |  0.2576 ns |      - |      76 B |         - |\n| DirectSetter         |  0.2461 ns | 0.0046 ns | 0.0069 ns |  0.2464 ns |  0.2319 ns |  0.2602 ns |  0.2559 ns |      - |      28 B |         - |\n| PropertySetter       | 30.9568 ns | 0.7685 ns | 1.1264 ns | 30.9573 ns | 28.9010 ns | 33.1765 ns | 32.5602 ns | 0.0014 |   7,622 B |      24 B |\n| PropertySetterCashed | 14.8384 ns | 0.3280 ns | 0.4910 ns | 14.7831 ns | 14.0345 ns | 15.9141 ns | 15.4103 ns | 0.0014 |   3,747 B |      24 B |\n| AccessorSetter       | 18.5967 ns | 0.4391 ns | 0.6572 ns | 18.6379 ns | 17.2392 ns | 19.8214 ns | 19.3874 ns | 0.0014 |        NA |      24 B |\n| AccessorSetterCached |  2.7250 ns | 0.0634 ns | 0.0949 ns |  2.7154 ns |  2.5550 ns |  2.9903 ns |  2.8612 ns | 0.0014 |     191 B |      24 B |\n| ExpressionSetter     |  1.4299 ns | 0.0171 ns | 0.0255 ns |  1.4219 ns |  1.3967 ns |  1.4988 ns |  1.4633 ns |      - |      57 B |         - |\n| GeneratorSetter      |  0.4795 ns | 0.0071 ns | 0.0105 ns |  0.4783 ns |  0.4610 ns |  0.5038 ns |  0.4926 ns |      - |      85 B |         - |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fusausa%2Fmember-accessor-generator","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fusausa%2Fmember-accessor-generator","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fusausa%2Fmember-accessor-generator/lists"}