Skip to content

Commit c2c9a73

Browse files
authored
Merge pull request #459 from ignatandrei/REslava.ResultFlow
R eslava.result flow
2 parents 6ad4dc0 + e202220 commit c2c9a73

29 files changed

Lines changed: 7392 additions & 14 deletions

File tree

README.md

Lines changed: 27 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,18 @@
1-
# RSCG - 257 Examples of Roslyn Source Code Generators / 16 created by Microsoft /
1+
# RSCG - 258 Examples of Roslyn Source Code Generators / 16 created by Microsoft /
22

3-
The RSCG_Examples repository is a comprehensive documentation system that automatically processes and showcases 257 Roslyn Source Code Generator (RSCG) examples. The system transforms individual RSCG projects into structured documentation with code examples and cross-referenced content with a searchable website and code example exports.
3+
The RSCG_Examples repository is a comprehensive documentation system that automatically processes and showcases 258 Roslyn Source Code Generator (RSCG) examples. The system transforms individual RSCG projects into structured documentation with code examples and cross-referenced content with a searchable website and code example exports.
44

55
This system serves as both a learning resource for .NET developers interested in source generators and an automated pipeline for maintaining up-to-date documentation about the RSCG ecosystem
66

7-
## Latest Update : 2026-02-15 => 15 February 2026
7+
## Latest Update : 2026-03-18 => 18 March 2026
88

99
If you want to see examples with code, please click ***[List V2](https://ignatandrei.github.io/RSCG_Examples/v2/docs/List-of-RSCG)***
1010

1111
If you want just those from Microsoft, please click ***[Microsoft](https://ignatandrei.github.io/RSCG_Examples/v2/docs/Authors/Microsoft)***
1212

1313
If you want to see by category, please click ***[category](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples)***
1414
or click any category below
15-
[actor](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#actor) -[ai](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#ai) -[aop](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#aop) -[api](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#api) -[async](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#async) -[bitwise](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#bitwise) -[blazor](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#blazor) -[bool](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#bool) -[builder](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#builder) -[clone](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#clone) -[codetostring](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#codetostring) -[commandline](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#commandline) -[console](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#console) -[constructor](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#constructor) -[database](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#database) -[decorator](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#decorator) -[dependencyinjection](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#dependencyinjection) -[disposer](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#disposer) -[enhancementclass](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enhancementclass) -[enhancementproject](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enhancementproject) -[enum](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enum) -[equals](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#equals) -[filestocode](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#filestocode) -[functionalprogramming](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#functionalprogramming) -[hangfire](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#hangfire) -[idempotency](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#idempotency) -[interface](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#interface) -[linq](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#linq) -[mapper](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mapper) -[mcp](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mcp) -[mediator](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mediator) -[mixin](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mixin) -[mvc](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mvc) -[mvvm](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mvvm) -[optimizer](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#optimizer) -[primitiveobsession](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#primitiveobsession) -[profiler](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#profiler) -[rx](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#rx) -[serializer](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#serializer) -[signalr](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#signalr) -[statemachine](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#statemachine) -[templating](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#templating) -[tests](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#tests) -[validator](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#validator) -[winapi](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#winapi) -
15+
[actor](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#actor) -[ai](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#ai) -[aop](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#aop) -[api](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#api) -[async](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#async) -[bitwise](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#bitwise) -[blazor](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#blazor) -[bool](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#bool) -[builder](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#builder) -[clone](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#clone) -[codetostring](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#codetostring) -[commandline](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#commandline) -[console](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#console) -[constructor](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#constructor) -[database](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#database) -[decorator](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#decorator) -[dependencyinjection](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#dependencyinjection) -[disposer](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#disposer) -[documentation](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#documentation) -[enhancementclass](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enhancementclass) -[enhancementproject](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enhancementproject) -[enum](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enum) -[equals](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#equals) -[filestocode](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#filestocode) -[functionalprogramming](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#functionalprogramming) -[hangfire](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#hangfire) -[idempotency](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#idempotency) -[interface](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#interface) -[linq](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#linq) -[mapper](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mapper) -[mcp](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mcp) -[mediator](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mediator) -[mixin](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mixin) -[mvc](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mvc) -[mvvm](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#mvvm) -[optimizer](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#optimizer) -[primitiveobsession](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#primitiveobsession) -[profiler](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#profiler) -[rx](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#rx) -[serializer](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#serializer) -[signalr](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#signalr) -[statemachine](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#statemachine) -[templating](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#templating) -[tests](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#tests) -[validator](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#validator) -[winapi](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#winapi) -
1616

1717

1818
## If you have a Roslyn Source Code Generator, please create an issue.
@@ -24,8 +24,30 @@ If you want to be notified each time I add a new RSCG example , please click htt
2424

2525
## Content
2626

27-
Those are the 257 Roslyn Source Code Generators that I have tested you can see and download source code example.
27+
Those are the 258 Roslyn Source Code Generators that I have tested you can see and download source code example.
2828
( including 16 from Microsoft )
29+
### 258. [REslava.ResultFlow](https://ignatandrei.github.io/RSCG_Examples/v2/docs/REslava.ResultFlow) , in the [Documentation](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#documentation) category
30+
31+
Generated on : 2026-03-18 => 18 March 2026
32+
33+
<details>
34+
<summary>Expand</summary>
35+
36+
37+
38+
Author: Rafa Eslava
39+
40+
Source generator that auto-generates Mermaid pipeline diagrams at compile time for any Result library. Add [ResultFlow] to any fluent method and get a generated const string diagram — zero runtime overhead, zero manual maintenance.
41+
42+
Nuget: [https://www.nuget.org/packages/REslava.ResultFlow/](https://www.nuget.org/packages/REslava.ResultFlow/)
43+
44+
45+
Link: [https://ignatandrei.github.io/RSCG_Examples/v2/docs/REslava.ResultFlow](https://ignatandrei.github.io/RSCG_Examples/v2/docs/REslava.ResultFlow)
46+
47+
Source: [https://github.com/reslava/nuget-package-reslava-result/](https://github.com/reslava/nuget-package-reslava-result/)
48+
49+
</details>
50+
2951
### 257. [Pekspro.DataAnnotationValuesExtractor](https://ignatandrei.github.io/RSCG_Examples/v2/docs/Pekspro.DataAnnotationValuesExtractor) , in the [EnhancementClass](https://ignatandrei.github.io/RSCG_Examples/v2/docs/rscg-examples#enhancementclass) category
3052

3153
Generated on : 2026-02-15 => 15 February 2026

later.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Just later
22

3-
## Latest Update : 2026-02-15 => 15 February 2026
3+
## Latest Update : 2026-03-18 => 18 March 2026
44

55

66

v2/.tours/REslava.ResultFlow.tour

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
1+
2+
{
3+
"$schema": "https://aka.ms/codetour-schema",
4+
"title": "REslava.ResultFlow",
5+
"steps":
6+
[
7+
{
8+
"file": "rscg_examples/REslava.ResultFlow/src/ResultFlowGenerator/ResultFlowGenerator.csproj",
9+
"description": "First, we add Nuget [REslava.ResultFlow](https://www.nuget.org/packages/REslava.ResultFlow/) in csproj ",
10+
"pattern": "REslava.ResultFlow"
11+
}
12+
13+
,{
14+
"file": "rscg_examples/REslava.ResultFlow/src/ResultFlowGenerator/Helpers.cs",
15+
"description": "File Helpers.cs ",
16+
"pattern": "this is the code"
17+
}
18+
19+
,{
20+
"file": "rscg_examples/REslava.ResultFlow/src/ResultFlowGenerator/Program.cs",
21+
"description": "File Program.cs \r\n>> dotnet run --project rscg_examples/REslava.ResultFlow/src/ResultFlowGenerator/ResultFlowGenerator.csproj ",
22+
"pattern": "this is the code"
23+
}
24+
25+
26+
,{
27+
"file": "rscg_examples/REslava.ResultFlow/src/ResultFlowGenerator/obj/GX/REslava.ResultFlow/REslava.ResultFlow.Generators.ResultFlow.ResultFlowGenerator/ResultFlowAttribute.g.cs",
28+
"description": "Generated File 2 from 2 : ResultFlowAttribute.g.cs ",
29+
"line": 1
30+
}
31+
32+
,{
33+
"file": "rscg_examples/REslava.ResultFlow/src/ResultFlowGenerator/obj/GX/REslava.ResultFlow/REslava.ResultFlow.Generators.ResultFlow.ResultFlowGenerator/Helpers_Flows.g.cs",
34+
"description": "Generated File 1 from 2 : Helpers_Flows.g.cs ",
35+
"line": 1
36+
}
37+
38+
],
39+
40+
"ref": "main"
41+
42+
}

v2/Generator/MultiGeneratorV2.cs

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -154,8 +154,11 @@ public string[] SourceNoRSCG()
154154
text = text.Replace("(docs/rules/", $"({d.Generator!.Source}/docs/rules/");
155155
text = text.Replace("(CHANGELOG.md", $"({d.Generator!.Source}/CHANGELOG.md");
156156
text = text.Replace("(/.github/CONTRIBUTING.md)", $"({d.Generator!.Source}/.github/CONTRIBUTING.md)");
157+
text = text.Replace("{reasonPhrase}", "`{reasonPhrase`}");
158+
text = text.Replace("{code}", "`{code`}");
157159

158160
text = text.Replace("(CONTRIBUTING", $"({d.Generator!.Source}/CONTRIBUTING");
161+
text = text.Replace("(CONTRIBUTORS", $"({d.Generator!.Source}/CONTRIBUTORS");
159162
text = text.Replace("(SECURITY", $"({d.Generator!.Source}/SECURITY");
160163
text = text.Replace("(./CODE-OF-CONDUCT", $"({d.Generator!.Source}/CODE-OF-CONDUCT");
161164

v2/Generator/all.csv

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -256,3 +256,4 @@ Nr,Key,Source,Category
256256
255,KnockOff, https://github.com/NeatooDotNet/KnockOff,Tests
257257
256,Sundew.DiscriminatedUnions, https://github.com/sundews/Sundew.DiscriminatedUnions,FunctionalProgramming
258258
257,Pekspro.DataAnnotationValuesExtractor, https://github.com/pekspro/DataAnnotationValuesExtractor,EnhancementClass
259+
258,REslava.ResultFlow, https://github.com/reslava/nuget-package-reslava-result/,Documentation

v2/GeneratorData/Category.cs

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ public enum Category
4747
MCP= 42,
4848
Bool=43,
4949
Profiler=44,
50-
Idempotency=45
50+
Idempotency=45,
51+
Documentation=46,
5152
}
5253

v2/RSCGExamplesData/GeneratorDataRec.json

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1558,5 +1558,11 @@
15581558
"Category": 5,
15591559
"dtStart": "2026-02-15T00:00:00",
15601560
"show": true
1561+
},
1562+
{
1563+
"ID":"REslava.ResultFlow",
1564+
"Category": 46,
1565+
"dtStart": "2026-03-18T00:00:00",
1566+
"show": true
15611567
}
15621568
]
Lines changed: 64 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,64 @@
1+
2+
<h1>RSCG nr 258 : REslava.ResultFlow</h1>
3+
4+
<h2>Info</h2>
5+
Nuget : <a href="https://www.nuget.org/packages/REslava.ResultFlow/" target="_blank">https://www.nuget.org/packages/REslava.ResultFlow/</a>
6+
7+
<p>You can find more details at : <a href="https://github.com/reslava/nuget-package-reslava-result/" target="_blank"> https://github.com/reslava/nuget-package-reslava-result/</a></p>
8+
9+
<p>Author :Rafa Eslava</p>
10+
11+
<p>Source: <a href="https://github.com/reslava/nuget-package-reslava-result/" target="_blank">https://github.com/reslava/nuget-package-reslava-result/</a> </p>
12+
13+
<h2>About</h2>
14+
15+
Functional Code as Mermaid diagrams
16+
17+
<h2>
18+
How to use
19+
</h2>
20+
<h3>
21+
Add reference to the <a href="https://www.nuget.org/packages/REslava.ResultFlow/" target="_blank">REslava.ResultFlow</a> in the csproj
22+
</h3>
23+
<img src="images/REslava.ResultFlow/ResultFlowGenerator.csproj.png" width="580" height="580" />
24+
25+
<h3>This was for me the <b>starting</b> code</h3>
26+
27+
<br />
28+
I have <b>coded</b> the file Program.cs
29+
<br />
30+
<img src="images/REslava.ResultFlow/csFiles/Program.cs.png" width="580" height="580" />
31+
<hr />
32+
33+
<br />
34+
I have <b>coded</b> the file Helpers.cs
35+
<br />
36+
<img src="images/REslava.ResultFlow/csFiles/Helpers.cs.png" width="580" height="580" />
37+
<hr />
38+
<h3>And here are the <i>generated</i> files</h3>
39+
40+
<br />
41+
The file <i>generated</i> is Helpers_Flows.g.cs
42+
<br />
43+
<img src="images/REslava.ResultFlow/generated/Helpers_Flows.g.cs.png" width="580" height="580" />
44+
45+
<br />
46+
The file <i>generated</i> is ResultFlowAttribute.g.cs
47+
<br />
48+
<img src="images/REslava.ResultFlow/generated/ResultFlowAttribute.g.cs.png" width="580" height="580" />
49+
50+
<p>
51+
You can download the code and this page as pdf from
52+
<a target="_blank" href='https://ignatandrei.github.io/RSCG_Examples/v2/docs/REslava.ResultFlow'>
53+
https://ignatandrei.github.io/RSCG_Examples/v2/docs/REslava.ResultFlow
54+
</a>
55+
</p>
56+
57+
58+
<p>
59+
You can see the whole list at
60+
<a target="_blank" href='https://ignatandrei.github.io/RSCG_Examples/v2/docs/List-of-RSCG'>
61+
https://ignatandrei.github.io/RSCG_Examples/v2/docs/List-of-RSCG
62+
</a>
63+
</p>
64+

v2/book/list.html

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@
1717
</head>
1818
<body>
1919
<h1>
20-
This is the list of 257 RSCG with examples =>
20+
This is the list of 258 RSCG with examples =>
2121
</h1>
2222

2323
<table >
@@ -1054,6 +1054,10 @@ <h1>
10541054
<td>257</td>
10551055
<td><a href="examples/Pekspro.DataAnnotationValuesExtractor.html">Pekspro.DataAnnotationValuesExtractor</a></td>
10561056
</tr>
1057+
<tr>
1058+
<td>258</td>
1059+
<td><a href="examples/REslava.ResultFlow.html">REslava.ResultFlow</a></td>
1060+
</tr>
10571061
</table>
10581062

10591063

v2/book/pandocHTML.yaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -271,6 +271,7 @@ input-files:
271271
- examples/KnockOff.html
272272
- examples/Sundew.DiscriminatedUnions.html
273273
- examples/Pekspro.DataAnnotationValuesExtractor.html
274+
- examples/REslava.ResultFlow.html
274275

275276
# or you may use input-file: with a single value
276277
# defaults:

0 commit comments

Comments
 (0)