Skip to content

docs: update AI agent docs with ProjectTo, same-type, collection auto-map#93

Merged
cloud-hai-vo merged 1 commit intomainfrom
docs/update-ai-docs
Mar 31, 2026
Merged

docs: update AI agent docs with ProjectTo, same-type, collection auto-map#93
cloud-hai-vo merged 1 commit intomainfrom
docs/update-ai-docs

Conversation

@cloud-hai-vo
Copy link
Copy Markdown
Contributor

Problem

AI coding agents (Claude, Copilot, Cursor) helping users with EggMapper don't know about:

  • ProjectTo<TSrc, TDest>(config) — wrong signature in docs (showed one type arg)
  • Same-type auto-mapping (T → T without CreateMap)
  • Collection auto-mapping (Map<List>(listOfA))
  • Migration steps from AutoMapper

Fix

Updated llms.txt and llms-full.txt with:

  • Correct ProjectTo signature with EF Core example
  • Same-type auto-mapping section
  • Collection auto-mapping section
  • Full migration cheat sheet table
  • Expanded feature list

Test plan

  • Verify llms.txt renders correctly on GitHub

🤖 Generated with Claude Code

…-map

- Fix ProjectTo signature: ProjectTo<TSrc, TDest>(config) (two type args)
- Add same-type auto-mapping (T → T without CreateMap) documentation
- Add collection auto-mapping (Map<List<B>>(listOfA)) documentation
- Add migration cheat sheet (AutoMapper → EggMapper API mapping table)
- Expand supported features list with all recent additions

These docs are consumed by AI coding agents (Claude, Copilot, Cursor)
to suggest EggMapper APIs when users ask for help.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@cloud-hai-vo cloud-hai-vo enabled auto-merge (squash) March 31, 2026 01:58
@cloud-hai-vo cloud-hai-vo merged commit 8267cd6 into main Mar 31, 2026
5 checks passed
@cloud-hai-vo cloud-hai-vo deleted the docs/update-ai-docs branch March 31, 2026 01:59
@github-actions
Copy link
Copy Markdown
Contributor

📊 Benchmark Results

Generated: 2026-03-31 02:04 UTC  ·  Download full artifacts

Column guide:
Mean = average execution time  ·  Error = half of 99.9 % confidence interval  ·  StdDev = standard deviation  ·  Min / Median / Max = statistical range  ·  Ratio = vs Manual baseline (lower = closer to hand-written speed)  ·  RatioSD = ratio std dev  ·  Rank = 1 is fastest  ·  Gen0/1/2 = GC collections per 1 000 ops  ·  Allocated = managed heap per operation  ·  Alloc Ratio = allocation ratio vs baseline

🔵 Flat Mapping — 10-property object

Method Mean Error StdDev Min Median Max Ratio RatioSD Rank Gen0 Allocated Alloc Ratio
Manual 14.86 ns 4.188 ns 0.230 ns 14.62 ns 14.89 ns 15.08 ns 1.00 0.02 1 0.0048 80 B 1.00
EggMapper 26.10 ns 9.648 ns 0.529 ns 25.55 ns 26.15 ns 26.61 ns 1.76 0.04 2 0.0048 80 B 1.00
AutoMapper 82.88 ns 9.240 ns 0.506 ns 82.37 ns 82.88 ns 83.38 ns 5.58 0.08 3 0.0048 80 B 1.00
Mapster 28.99 ns 8.072 ns 0.442 ns 28.67 ns 28.79 ns 29.49 ns 1.95 0.04 2 0.0048 80 B 1.00
MapperlyMap 16.25 ns 21.871 ns 1.199 ns 14.87 ns 16.79 ns 17.08 ns 1.09 0.07 1 0.0048 80 B 1.00
AgileMapper 510.27 ns 71.583 ns 3.924 ns 507.04 ns 509.13 ns 514.64 ns 34.33 0.51 4 0.0200 344 B 4.30
EggMapperGenerator 15.90 ns 3.070 ns 0.168 ns 15.71 ns 15.95 ns 16.04 ns 1.07 0.02 1 0.0048 80 B 1.00
EggMapperClassMapper 15.43 ns 4.636 ns 0.254 ns 15.15 ns 15.51 ns 15.64 ns 1.04 0.02 1 0.0048 80 B 1.00

🟡 Flattening — 2 nested objects → 8 flat properties

Method Mean Error StdDev Min Median Max Ratio RatioSD Rank Gen0 Allocated Alloc Ratio
Manual 19.67 ns 2.950 ns 0.162 ns 19.51 ns 19.67 ns 19.84 ns 1.00 0.01 1 0.0048 80 B 1.00
EggMap 30.41 ns 6.659 ns 0.365 ns 30.09 ns 30.33 ns 30.81 ns 1.55 0.02 2 0.0048 80 B 1.00
AutoMapper 95.10 ns 20.959 ns 1.149 ns 94.21 ns 94.69 ns 96.39 ns 4.83 0.06 4 0.0048 80 B 1.00
Mapster 38.62 ns 7.942 ns 0.435 ns 38.12 ns 38.77 ns 38.95 ns 1.96 0.02 3 0.0048 80 B 1.00
MapperlyMap 23.55 ns 8.018 ns 0.439 ns 23.21 ns 23.39 ns 24.05 ns 1.20 0.02 1 0.0062 104 B 1.30
AgileMapper 538.49 ns 349.551 ns 19.160 ns 525.99 ns 528.94 ns 560.55 ns 27.37 0.87 5 0.0200 344 B 4.30

🟣 Deep Mapping — 2 nested address objects

Method Mean Error StdDev Min Median Max Ratio RatioSD Rank Gen0 Allocated Alloc Ratio
Manual 54.25 ns 11.225 ns 0.615 ns 53.54 ns 54.55 ns 54.66 ns 1.00 0.01 1 0.0162 272 B 1.00
EggMapper 68.47 ns 39.576 ns 2.169 ns 66.58 ns 68.00 ns 70.84 ns 1.26 0.04 2 0.0162 272 B 1.00
AutoMapper 128.89 ns 5.618 ns 0.308 ns 128.65 ns 128.77 ns 129.24 ns 2.38 0.02 3 0.0162 272 B 1.00
Mapster 71.86 ns 11.527 ns 0.632 ns 71.19 ns 71.96 ns 72.44 ns 1.32 0.02 2 0.0162 272 B 1.00
MapperlyMap 50.78 ns 23.758 ns 1.302 ns 49.56 ns 50.62 ns 52.15 ns 0.94 0.02 1 0.0162 272 B 1.00
AgileMapper 509.51 ns 46.270 ns 2.536 ns 506.72 ns 510.12 ns 511.68 ns 9.39 0.10 4 0.0248 424 B 1.56

🟢 Complex Mapping — nested object + collection

Method Mean Error StdDev Min Median Max Ratio RatioSD Rank Gen0 Allocated Alloc Ratio
Manual 72.29 ns 18.004 ns 0.987 ns 71.71 ns 71.73 ns 73.43 ns 1.00 0.02 1 0.0191 320 B 1.00
EggMapper 92.30 ns 17.281 ns 0.947 ns 91.43 ns 92.16 ns 93.31 ns 1.28 0.02 2 0.0191 320 B 1.00
AutoMapper 158.97 ns 70.473 ns 3.863 ns 155.00 ns 159.20 ns 162.72 ns 2.20 0.05 3 0.0196 328 B 1.02
Mapster 88.70 ns 7.513 ns 0.412 ns 88.26 ns 88.77 ns 89.07 ns 1.23 0.02 2 0.0191 320 B 1.00
MapperlyMap 71.85 ns 18.301 ns 1.003 ns 70.76 ns 72.05 ns 72.74 ns 0.99 0.02 1 0.0191 320 B 1.00
AgileMapper 569.59 ns 97.970 ns 5.370 ns 563.44 ns 572.00 ns 573.34 ns 7.88 0.11 4 0.0315 528 B 1.65

🟠 Collection — 100-item List<T>

Method Mean Error StdDev Min Median Max Ratio RatioSD Rank Gen0 Gen1 Allocated Alloc Ratio
Manual 1.746 μs 0.3392 μs 0.0186 μs 1.725 μs 1.757 μs 1.757 μs 1.00 0.01 1 0.5283 0.0172 8.65 KB 1.00
EggMapper 1.801 μs 0.2418 μs 0.0133 μs 1.789 μs 1.800 μs 1.815 μs 1.03 0.01 1 0.5283 0.0172 8.65 KB 1.00
AutoMapper 2.671 μs 0.8315 μs 0.0456 μs 2.618 μs 2.696 μs 2.698 μs 1.53 0.03 2 0.6065 0.0191 9.95 KB 1.15
Mapster 1.765 μs 0.6225 μs 0.0341 μs 1.727 μs 1.772 μs 1.794 μs 1.01 0.02 1 0.5283 0.0172 8.65 KB 1.00
MapperlyMap 1.895 μs 1.0082 μs 0.0553 μs 1.833 μs 1.910 μs 1.941 μs 1.09 0.03 1 0.5283 0.0172 8.65 KB 1.00
AgileMapper 2.553 μs 0.2998 μs 0.0164 μs 2.536 μs 2.555 μs 2.568 μs 1.46 0.02 2 0.5417 0.0153 8.91 KB 1.03

🟠 Collection — 100-item List<T>

Method Mean Error StdDev Min Median Max Ratio RatioSD Rank Gen0 Gen1 Allocated Alloc Ratio
Manual 5.383 μs 1.5208 μs 0.0834 μs 5.333 μs 5.338 μs 5.480 μs 1.00 0.02 1 1.6708 0.0916 27.4 KB 1.00
EggMapper 5.914 μs 1.0270 μs 0.0563 μs 5.851 μs 5.930 μs 5.960 μs 1.10 0.02 1 1.6708 0.0916 27.4 KB 1.00
AutoMapper 6.684 μs 1.4123 μs 0.0774 μs 6.628 μs 6.652 μs 6.772 μs 1.24 0.02 1 1.7548 0.1068 28.7 KB 1.05
Mapster 5.994 μs 1.6485 μs 0.0904 μs 5.902 μs 5.997 μs 6.082 μs 1.11 0.02 1 1.6708 0.0916 27.4 KB 1.00
MapperlyMap 5.525 μs 0.5847 μs 0.0321 μs 5.498 μs 5.516 μs 5.561 μs 1.03 0.01 1 1.6785 0.0992 27.42 KB 1.00
AgileMapper 5.363 μs 0.5075 μs 0.0278 μs 5.332 μs 5.370 μs 5.386 μs 1.00 0.01 1 1.0223 0.0610 16.72 KB 0.61

🟠 Collection — 100-item List<T>

Method Mean Error StdDev Min Median Max Ratio RatioSD Rank Gen0 Gen1 Allocated Alloc Ratio
Manual 17.15 μs 5.563 μs 0.305 μs 16.80 μs 17.31 μs 17.34 μs 1.00 0.02 1 5.2490 1.3123 85.99 KB 1.00
EggMapper 17.29 μs 3.727 μs 0.204 μs 17.05 μs 17.40 μs 17.40 μs 1.01 0.02 1 5.2490 1.3123 85.99 KB 1.00
AutoMapper 22.71 μs 7.976 μs 0.437 μs 22.21 μs 22.89 μs 23.02 μs 1.32 0.03 1 5.7678 1.4343 94.34 KB 1.10
Mapster 20.76 μs 2.786 μs 0.153 μs 20.58 μs 20.84 μs 20.86 μs 1.21 0.02 1 5.2490 1.3123 85.99 KB 1.00
MapperlyMap 19.44 μs 4.186 μs 0.229 μs 19.25 μs 19.38 μs 19.70 μs 1.13 0.02 1 5.2490 1.2817 86.02 KB 1.00
AgileMapper 22.27 μs 9.246 μs 0.507 μs 21.70 μs 22.43 μs 22.68 μs 1.30 0.03 1 5.2795 1.3123 86.25 KB 1.00

⚪ Startup / Configuration time

Method Mean Error StdDev Min Median Max Ratio RatioSD Rank Gen0 Gen1 Allocated Alloc Ratio
EggMapperStartup 1,336.085 μs 1,073.4712 μs 58.8406 μs 1,277.120 μs 1,336.333 μs 1,394.801 μs 1.001 0.05 3 5.8594 3.9063 95.92 KB 1.00
AutoMapperStartup 426.116 μs 885.2332 μs 48.5226 μs 371.581 μs 442.250 μs 464.516 μs 0.319 0.03 2 5.8594 - 104.24 KB 1.09
MapsterStartup 2.680 μs 0.4289 μs 0.0235 μs 2.654 μs 2.685 μs 2.700 μs 0.002 0.00 1 0.7019 0.0267 11.51 KB 0.12

EggMapper.Benchmarks.ColdStartBenchmark-report-github

Method Mean Error StdDev Min Median Max Ratio RatioSD Rank Gen0 Gen1 Allocated Alloc Ratio
EggMapper 1.348 ms 1.421 ms 0.0779 ms 1.271 ms 1.345 ms 1.427 ms 1.00 0.07 1 5.8594 3.9063 96.03 KB 1.00
AutoMapper 4.060 ms 9.531 ms 0.5224 ms 3.557 ms 4.025 ms 4.600 ms 3.02 0.37 2 15.6250 7.8125 310.79 KB 3.24
Mapster 4.113 ms 12.487 ms 0.6844 ms 3.464 ms 4.048 ms 4.828 ms 3.06 0.47 2 39.0625 15.6250 757.28 KB 7.89

📝 Notes
  • Each benchmark class is decorated with [MemoryDiagnoser] and [RankColumn].
  • The global config (see src/EggMapper.Benchmarks/Program.cs) adds Min, Median, and Max columns.
  • Manual is the hand-written baseline (ratio = 1.00). A ratio < 1 means faster than manual.
  • Benchmarks run on GitHub-hosted runners — absolute times may vary between runs; focus on Ratio for comparisons.
  • To reproduce locally:
    cd src/EggMapper.Benchmarks
    dotnet run --configuration Release -- --filter '*'

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant