Skip to content

Comments

feat(generators): Add Adapter pattern generator#108

Merged
JerrettDavis merged 12 commits intomainfrom
feat/adapter-generator
Feb 13, 2026
Merged

feat(generators): Add Adapter pattern generator#108
JerrettDavis merged 12 commits intomainfrom
feat/adapter-generator

Conversation

@JerrettDavis
Copy link
Owner

Summary

Implements the Adapter pattern generator per issue #33.

The generator creates object adapters that implement a target contract (interface or abstract class) by delegating to an adaptee through explicit mapping methods.

Features

  • Object adapter generation via [GenerateAdapter] attribute
  • Explicit member mapping via [AdapterMap] attribute with
    ameof() for type safety
  • Target types: interfaces and abstract classes
  • Member types: properties and methods (including async)
  • Override keyword automatically applied for abstract class members
  • ThrowingStub policy for incremental development
  • Multiple adapters from a single host class

Diagnostics (PKADP001-008)

ID Description
PKADP001 Host must be static partial
PKADP002 Target must be interface or abstract class
PKADP003 Missing mapping for target member
PKADP004 Duplicate mapping for target member
PKADP005 Signature mismatch
PKADP006 Type name conflict
PKADP007 Invalid adaptee type
PKADP008 Mapping method must be static

Tests

  • 14 generator unit tests covering all diagnostics and generation paths
  • 20 demo integration tests with real-world scenarios
  • All tests pass on net8.0, net9.0, net10.0 (2514 total test runs)

Documentation

  • Full documentation at \docs/generators/adapter.md\
  • Real-world demos:
    • Clock adapter: Legacy time service to modern IClock interface
    • Payment adapters: Stripe and PayPal to unified IPaymentGateway
    • Logger adapter: Legacy console logger to IStructuredLogger

Usage Example

\\csharp
[GenerateAdapter(Target = typeof(IClock), Adaptee = typeof(LegacyClock))]
public static partial class ClockAdapters
{
[AdapterMap(TargetMember = nameof(IClock.Now))]
public static DateTimeOffset MapNow(LegacyClock adaptee)
=> adaptee.GetCurrentTime();
}

// Generated: LegacyClockToIClockAdapter : IClock
\\

Closes #33

Implements the Adapter pattern generator per issue #33:

## Features
- Object adapter generation via [GenerateAdapter] attribute
- Explicit member mapping via [AdapterMap] attribute
- Support for interface and abstract class targets
- Support for properties and methods (including async)
- Override keyword for abstract class members
- ThrowingStub policy for incremental development
- Multiple adapters from single host class

## Diagnostics (PKADP001-008)
- PKADP001: Host must be static partial
- PKADP002: Target must be interface or abstract class
- PKADP003: Missing mapping for target member
- PKADP004: Duplicate mapping for target member
- PKADP005: Signature mismatch
- PKADP006: Type name conflict
- PKADP007: Invalid adaptee type
- PKADP008: Mapping method must be static

## Tests
- 14 generator unit tests
- 20 demo integration tests
- All pass on net8.0, net9.0, net10.0

## Documentation
- Full docs at docs/generators/adapter.md
- Real-world demos: Clock, Payment Gateway, Logger adapters

Closes #33
@github-actions
Copy link
Contributor

github-actions bot commented Feb 7, 2026

⚠️ Deprecation Warning: The deny-licenses option is deprecated for possible removal in the next major release. For more information, see issue 997.

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@github-actions
Copy link
Contributor

github-actions bot commented Feb 7, 2026

Test Results

372 tests   372 ✅  1m 36s ⏱️
  1 suites    0 💤
  1 files      0 ❌

Results for commit bb51007.

♻️ This comment has been updated with latest results.

@github-actions
Copy link
Contributor

github-actions bot commented Feb 7, 2026

🔍 PR Validation Results

Version: ``

✅ Validation Steps

  • Build solution
  • Run tests
  • Build documentation
  • Dry-run NuGet packaging

📊 Artifacts

Dry-run artifacts have been uploaded and will be available for 7 days.


This comment was automatically generated by the PR validation workflow.

@codecov
Copy link

codecov bot commented Feb 7, 2026

Codecov Report

❌ Patch coverage is 92.00000% with 62 lines in your changes missing coverage. Please review.
✅ Project coverage is 87.74%. Comparing base (19b5a84) to head (bb51007).
⚠️ Report is 2 commits behind head on main.

Files with missing lines Patch % Lines
.../PatternKit.Generators/Adapter/AdapterGenerator.cs 91.65% 55 Missing ⚠️
...nerators.Abstractions/Adapter/AdapterAttributes.cs 0.00% 7 Missing ⚠️
Additional details and impacted files
@@            Coverage Diff             @@
##             main     #108      +/-   ##
==========================================
+ Coverage   82.72%   87.74%   +5.01%     
==========================================
  Files         180      185       +5     
  Lines       17018    17793     +775     
  Branches     2407     2536     +129     
==========================================
+ Hits        14078    15612    +1534     
+ Misses       2304     2181     -123     
+ Partials      636        0     -636     
Flag Coverage Δ
unittests 87.74% <92.00%> (+5.01%) ⬆️

Flags with carried forward coverage won't be shown. Click here to find out more.

☔ View full report in Codecov by Sentry.
📢 Have feedback on the report? Share it here.

🚀 New features to boost your workflow:
  • ❄️ Test Analytics: Detect flaky tests, report on failures, and find test suite problems.

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Adds a new Adapter pattern source generator to PatternKit, including attributes, diagnostics, documentation, and example/demo coverage to support explicit member-to-member mapping via a static host class.

Changes:

  • Introduces AdapterGenerator (incremental generator) and adapter-specific attributes ([GenerateAdapter], [AdapterMap], AdapterMissingMapPolicy).
  • Adds unit tests for generator behavior/diagnostics and integration-style demo tests using generated adapters.
  • Documents the generator usage and adds adapter demo scenarios (clock, payments, logger).

Reviewed changes

Copilot reviewed 9 out of 9 changed files in this pull request and generated 15 comments.

Show a summary per file
File Description
src/PatternKit.Generators/Adapter/AdapterGenerator.cs Implements adapter codegen + diagnostics for mapping-based object adapters.
src/PatternKit.Generators.Abstractions/Adapter/AdapterAttributes.cs Adds public attribute surface area for consumers.
src/PatternKit.Generators/AnalyzerReleases.Unshipped.md Registers new analyzer/generator diagnostic IDs (PKADP001–008).
test/PatternKit.Generators.Tests/AdapterGeneratorTests.cs Adds generator unit tests for key generation paths and diagnostics.
src/PatternKit.Examples/AdapterGeneratorDemo/ClockAdapter.cs Demonstrates adapting a legacy clock API to IClock.
src/PatternKit.Examples/AdapterGeneratorDemo/PaymentAdapter.cs Demonstrates adapting Stripe/PayPal-shaped APIs to a unified gateway interface.
src/PatternKit.Examples/AdapterGeneratorDemo/LoggerAdapter.cs Demonstrates adapting a legacy console logger to a structured logger interface.
test/PatternKit.Examples.Tests/AdapterGeneratorDemo/AdapterGeneratorDemoTests.cs Validates demo adapters behave as expected at runtime.
docs/generators/adapter.md Adds end-user documentation and usage guidance for the new generator.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Filter mapping methods by adaptee type (fixes multiple adapters from same host)
- Exclude events from target members (not supported)
- For abstract class targets, only collect abstract members
- Handle struct adaptee constructor (no null check for value types)

Addresses feedback from GitHub Copilot review on PR #108.
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 9 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Use SymbolDisplay.FormatPrimitive for default value formatting
- Add setter stub for mapped properties with setters
- Validate ref/out/in parameter modifiers in signature check
- De-duplicate members from interface diamond inheritance
- Add tests for PKADP007 (invalid adaptee), PKADP008 (non-static map)
- Add test for overlapping member names across adapters
- Add test for interface diamond de-duplication
- Add test for ref parameter validation
- Fix docs: Charge -> ChargeAsync in example
- Add PKADP006 type name conflict check before generating adapter
- Add PKADP009 for events not supported in target contract
- Add PKADP010 for generic methods not supported
- Add PKADP011 for overloaded methods not supported
- Add PKADP012 for abstract class without parameterless constructor
- Add tests for all new diagnostics (events, generics, overloads, ctor)
- Add test for struct adaptee (no null check)
- Add test for type name conflict
- Update AnalyzerReleases.Unshipped.md with new diagnostic IDs
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 12 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

- Fix parameterless ctor check to include protected internal and internal
- Fix overload detection to compare full signatures (not just name count)
  - Diamond inheritance (same signature from multiple paths) no longer falsely triggers PKADP011
- Add PKADP013 diagnostic for settable properties (not supported)
- Remove setter stub generation (now a compile-time error)
- Add SymbolDisplayFormat for consistent type output with global:: prefix
- Fix interface diamond test to use actual diamond (IBase1, IBase2)
- Add tests for settable property diagnostic
- Update test assertions to match global:: prefixed types
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 8 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@JerrettDavis
Copy link
Owner Author

@copilot open a new pull request to apply changes based on the comments in this thread

Copy link
Contributor

Copilot AI commented Feb 10, 2026

@JerrettDavis I've opened a new pull request, #110, to work on those changes. Once the pull request is ready, I'll request review from you.

…diagnostic improvements (#110)

* Initial plan

* fix(adapter): address review feedback - fully-qualified types, member ordering, and code style

Co-authored-by: JerrettDavis <2610199+JerrettDavis@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: JerrettDavis <2610199+JerrettDavis@users.noreply.github.com>
Copy link
Contributor

Copilot AI commented Feb 11, 2026

@JerrettDavis I've opened a new pull request, #113, to work on those changes. Once the pull request is ready, I'll request review from you.

… tests (#113)

* Initial plan

* fix(adapter): Remove redundant type checks and add missing diagnostic tests

Co-authored-by: JerrettDavis <2610199+JerrettDavis@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: JerrettDavis <2610199+JerrettDavis@users.noreply.github.com>
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@JerrettDavis
Copy link
Owner Author

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 4 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@copilot Apply all the fixes in this thread.

Copy link
Contributor

Copilot AI commented Feb 11, 2026

@JerrettDavis I've opened a new pull request, #114, to work on those changes. Once the pull request is ready, I'll request review from you.

…te internal constructor accessibility (#114)

* Initial plan

* fix(adapter): Address review feedback - duplicate adapter detection, indexers, and internal ctor accessibility

Co-authored-by: JerrettDavis <2610199+JerrettDavis@users.noreply.github.com>

* docs(adapter): Add PKADP018 indexer diagnostic to documentation

Co-authored-by: JerrettDavis <2610199+JerrettDavis@users.noreply.github.com>

* fix(adapter): Improve variable naming and remove redundant indexer check in ref-return validation

Co-authored-by: JerrettDavis <2610199+JerrettDavis@users.noreply.github.com>

* refactor(adapter): Improve code readability in constructor and property validation

Co-authored-by: JerrettDavis <2610199+JerrettDavis@users.noreply.github.com>

* refactor(adapter): Use ContainsKey instead of TryGetValue for duplicate adapter check

Co-authored-by: JerrettDavis <2610199+JerrettDavis@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: JerrettDavis <2610199+JerrettDavis@users.noreply.github.com>
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 7 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@JerrettDavis
Copy link
Owner Author

@copilot open a new pull request to apply changes based on the comments in this thread

Copy link
Contributor

Copilot AI commented Feb 11, 2026

@JerrettDavis I've opened a new pull request, #115, to work on those changes. Once the pull request is ready, I'll request review from you.

…nd declaration order (#115)

* Initial plan

* fix(adapter): Add tests and fix cross-host collision detection, member locations, and declaration order

Co-authored-by: JerrettDavis <2610199+JerrettDavis@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: JerrettDavis <2610199+JerrettDavis@users.noreply.github.com>
Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 6 comments.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@JerrettDavis
Copy link
Owner Author

@copilot open a new pull request to apply changes based on the comments in this thread

Copy link
Contributor

Copilot AI commented Feb 13, 2026

@JerrettDavis I've opened a new pull request, #116, to work on those changes. Once the pull request is ready, I'll request review from you.

… filtering (#116)

* Initial plan

* fix(adapter): Apply PR review fixes - enum defaults, partial types, ordering, accessibility, interface DIMs

Co-authored-by: JerrettDavis <2610199+JerrettDavis@users.noreply.github.com>

* refactor(adapter): Combine internal accessibility checks and clarify ordering comment

Co-authored-by: JerrettDavis <2610199+JerrettDavis@users.noreply.github.com>

* refactor(adapter): Simplify conflict detection and filtering logic with LINQ

Co-authored-by: JerrettDavis <2610199+JerrettDavis@users.noreply.github.com>

---------

Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Co-authored-by: JerrettDavis <2610199+JerrettDavis@users.noreply.github.com>
@github-actions
Copy link
Contributor

Code Coverage

Summary
  Generated on: 02/13/2026 - 18:11:45
  Coverage date: 02/13/2026 - 18:11:09 - 02/13/2026 - 18:11:38
  Parser: MultiReport (9x Cobertura)
  Assemblies: 4
  Classes: 430
  Files: 293
  Line coverage: 79.7%
  Covered lines: 15866
  Uncovered lines: 4030
  Coverable lines: 19896
  Total lines: 49713
  Branch coverage: 71.8% (5156 of 7181)
  Covered branches: 5156
  Total branches: 7181
  Method coverage: 75.8% (2824 of 3721)
  Full method coverage: 69.2% (2576 of 3721)
  Covered methods: 2824
  Fully covered methods: 2576
  Total methods: 3721

PatternKit.Core                                                                                                   96.8%
  PatternKit.Behavioral.Chain.ActionChain<T>                                                                       100%
  PatternKit.Behavioral.Chain.AsyncActionChain<T>                                                                  100%
  PatternKit.Behavioral.Chain.AsyncResultChain<T1, T2>                                                            97.7%
  PatternKit.Behavioral.Chain.ResultChain<T1, T2>                                                                  100%
  PatternKit.Behavioral.Command.Command<T>                                                                         100%
  PatternKit.Behavioral.Interpreter.ActionInterpreter                                                              100%
  PatternKit.Behavioral.Interpreter.ActionInterpreter<T>                                                          96.9%
  PatternKit.Behavioral.Interpreter.ActionInterpreterBuilder<T>                                                    100%
  PatternKit.Behavioral.Interpreter.AsyncActionInterpreter                                                         100%
  PatternKit.Behavioral.Interpreter.AsyncActionInterpreter<T>                                                      100%
  PatternKit.Behavioral.Interpreter.AsyncActionInterpreterBuilder<T>                                               100%
  PatternKit.Behavioral.Interpreter.AsyncInterpreter                                                               100%
  PatternKit.Behavioral.Interpreter.AsyncInterpreter<T1, T2>                                                      96.8%
  PatternKit.Behavioral.Interpreter.AsyncInterpreterBuilder<T1, T2>                                                100%
  PatternKit.Behavioral.Interpreter.Builder<T1, T2>                                                                 96%
  PatternKit.Behavioral.Interpreter.ExpressionExtensions                                                           100%
  PatternKit.Behavioral.Interpreter.Interpreter                                                                    100%
  PatternKit.Behavioral.Interpreter.Interpreter<T1, T2>                                                           96.6%
  PatternKit.Behavioral.Interpreter.NonTerminalExpression                                                          100%
  PatternKit.Behavioral.Interpreter.TerminalExpression                                                             100%
  PatternKit.Behavioral.Iterator.AsyncFlow<T>                                                                      100%
  PatternKit.Behavioral.Iterator.AsyncFlowExtensions                                                               100%
  PatternKit.Behavioral.Iterator.AsyncReplayBuffer<T>                                                             93.9%
  PatternKit.Behavioral.Iterator.Flow<T>                                                                          94.4%
  PatternKit.Behavioral.Iterator.FlowExtensions                                                                    100%
  PatternKit.Behavioral.Iterator.ReplayableSequence<T>                                                            98.2%
  PatternKit.Behavioral.Iterator.ReplayableSequenceExtensions                                                      100%
  PatternKit.Behavioral.Iterator.SharedAsyncFlow<T>                                                                100%
  PatternKit.Behavioral.Iterator.SharedFlow<T>                                                                     100%
  PatternKit.Behavioral.Iterator.WindowSequence                                                                    100%
  PatternKit.Behavioral.Mediator.Mediator                                                                         91.9%
  PatternKit.Behavioral.Mediator.MediatorHelpers                                                                   100%
  PatternKit.Behavioral.Mediator.TaskExtensions                                                                    100%
  PatternKit.Behavioral.Memento.Memento<T>                                                                         100%
  PatternKit.Behavioral.Observer.AsyncObserver<T>                                                                 98.7%
  PatternKit.Behavioral.Observer.Observer<T>                                                                      98.2%
  PatternKit.Behavioral.State.AsyncStateMachine<T1, T2>                                                             95%
  PatternKit.Behavioral.State.StateMachine<T1, T2>                                                                  99%
  PatternKit.Behavioral.Strategy.ActionStrategy<T>                                                                  97%
  PatternKit.Behavioral.Strategy.AsyncActionStrategy<T>                                                            100%
  PatternKit.Behavioral.Strategy.AsyncStrategy<T1, T2>                                                             100%
  PatternKit.Behavioral.Strategy.Strategy<T1, T2>                                                                  100%
  PatternKit.Behavioral.Strategy.TryStrategy<T1, T2>                                                              95.8%
  PatternKit.Behavioral.Template.ActionTemplate<T>                                                                 100%
  PatternKit.Behavioral.Template.AsyncActionTemplate<T>                                                            100%
  PatternKit.Behavioral.Template.AsyncTemplate<T1, T2>                                                            97.1%
  PatternKit.Behavioral.Template.AsyncTemplateMethod<T1, T2>                                                       100%
  PatternKit.Behavioral.Template.Template<T1, T2>                                                                  100%
  PatternKit.Behavioral.Template.TemplateMethod<T1, T2>                                                            100%
  PatternKit.Behavioral.TypeDispatcher.ActionTypeDispatcher<T>                                                    91.4%
  PatternKit.Behavioral.TypeDispatcher.AsyncActionTypeDispatcher<T>                                               94.5%
  PatternKit.Behavioral.TypeDispatcher.AsyncTypeDispatcher<T1, T2>                                                94.4%
  PatternKit.Behavioral.TypeDispatcher.TypeDispatcher<T1, T2>                                                      100%
  PatternKit.Behavioral.Visitor.ActionVisitor<T>                                                                  85.7%
  PatternKit.Behavioral.Visitor.ActionVisitorBase<T>                                                               100%
  PatternKit.Behavioral.Visitor.AsyncActionVisitor<T>                                                             94.5%
  PatternKit.Behavioral.Visitor.AsyncFluentActionVisitor<T>                                                        100%
  PatternKit.Behavioral.Visitor.AsyncFluentVisitor<T1, T2>                                                         100%
  PatternKit.Behavioral.Visitor.AsyncVisitor<T1, T2>                                                              86.1%
  PatternKit.Behavioral.Visitor.FluentActionVisitor<T>                                                             100%
  PatternKit.Behavioral.Visitor.FluentVisitor<T1, T2>                                                              100%
  PatternKit.Behavioral.Visitor.Visitor<T1, T2>                                                                   91.1%
  PatternKit.Behavioral.Visitor.VisitorBase<T1, T2>                                                                100%
  PatternKit.Common.Option<T>                                                                                      100%
  PatternKit.Common.Throw                                                                                          100%
  PatternKit.Common.TryHandlerExtensions                                                                           100%
  PatternKit.Creational.AbstractFactory.AbstractFactory<T>                                                        91.6%
  PatternKit.Creational.Builder.BranchBuilder<T1, T2>                                                              100%
  PatternKit.Creational.Builder.BuilderExtensions                                                                  100%
  PatternKit.Creational.Builder.ChainBuilder<T>                                                                    100%
  PatternKit.Creational.Builder.Composer<T1, T2>                                                                   100%
  PatternKit.Creational.Builder.MutableBuilder<T>                                                                  100%
  PatternKit.Creational.Factory.Factory<T1, T2>                                                                   92.3%
  PatternKit.Creational.Factory.Factory<T1, T2, T3>                                                               92.3%
  PatternKit.Creational.Prototype.Prototype<T>                                                                     100%
  PatternKit.Creational.Prototype.Prototype<T1, T2>                                                                 90%
  PatternKit.Creational.Singleton.Singleton<T>                                                                    96.5%
  PatternKit.Structural.Adapter.Adapter<T1, T2>                                                                    100%
  PatternKit.Structural.Adapter.AsyncAdapter<T1, T2>                                                               100%
  PatternKit.Structural.Bridge.ActionBridge<T1, T2>                                                               90.9%
  PatternKit.Structural.Bridge.AsyncActionBridge<T1, T2>                                                          96.5%
  PatternKit.Structural.Bridge.AsyncBridge<T1, T2, T3>                                                            90.6%
  PatternKit.Structural.Bridge.Bridge<T1, T2, T3>                                                                  100%
  PatternKit.Structural.Composite.ActionComposite<T>                                                               100%
  PatternKit.Structural.Composite.AsyncActionComposite<T>                                                          100%
  PatternKit.Structural.Composite.AsyncComposite<T1, T2>                                                          97.8%
  PatternKit.Structural.Composite.Composite<T1, T2>                                                               97.3%
  PatternKit.Structural.Decorator.ActionDecorator<T>                                                               100%
  PatternKit.Structural.Decorator.AsyncActionDecorator<T>                                                          100%
  PatternKit.Structural.Decorator.AsyncDecorator<T1, T2>                                                            98%
  PatternKit.Structural.Decorator.Decorator<T1, T2>                                                               97.6%
  PatternKit.Structural.Facade.Facade<T1, T2>                                                                     88.8%
  PatternKit.Structural.Facade.TypedFacade<T>                                                                     79.4%
  PatternKit.Structural.Facade.TypedFacadeDispatchProxy<T>                                                        81.8%
  PatternKit.Structural.Facade.TypedFacadeProxyFactory<T>                                                          100%
  PatternKit.Structural.Flyweight.Flyweight<T1, T2>                                                                100%
  PatternKit.Structural.Proxy.ActionProxy<T>                                                                       100%
  PatternKit.Structural.Proxy.AsyncActionProxy<T>                                                                  100%
  PatternKit.Structural.Proxy.AsyncProxy<T1, T2>                                                                  98.6%
  PatternKit.Structural.Proxy.Proxy<T1, T2>                                                                       98.8%

PatternKit.Examples                                                                                               61.9%
  PatternKit.Examples.AbstractFactoryDemo.AbstractFactoryDemo                                                     98.2%
  PatternKit.Examples.AdapterGeneratorDemo.ClockAdapterMappings                                                    100%
  PatternKit.Examples.AdapterGeneratorDemo.ConsoleLoggerAdapter                                                    100%
  PatternKit.Examples.AdapterGeneratorDemo.LegacyConsoleLogger                                                     100%
  PatternKit.Examples.AdapterGeneratorDemo.LegacySystemClock                                                       100%
  PatternKit.Examples.AdapterGeneratorDemo.LoggerAdapterMappings                                                   100%
  PatternKit.Examples.AdapterGeneratorDemo.PaymentResult                                                           100%
  PatternKit.Examples.AdapterGeneratorDemo.PayPalAdapterMappings                                                   100%
  PatternKit.Examples.AdapterGeneratorDemo.PayPalAmount                                                            100%
  PatternKit.Examples.AdapterGeneratorDemo.PayPalPaymentAdapter                                                    100%
  PatternKit.Examples.AdapterGeneratorDemo.PayPalPaymentService                                                    100%
  PatternKit.Examples.AdapterGeneratorDemo.PayPalRefund                                                            100%
  PatternKit.Examples.AdapterGeneratorDemo.PayPalTransaction                                                       100%
  PatternKit.Examples.AdapterGeneratorDemo.RefundResult                                                            100%
  PatternKit.Examples.AdapterGeneratorDemo.StripeAdapterMappings                                                   100%
  PatternKit.Examples.AdapterGeneratorDemo.StripeChargeRequest                                                     100%
  PatternKit.Examples.AdapterGeneratorDemo.StripeChargeResponse                                                    100%
  PatternKit.Examples.AdapterGeneratorDemo.StripePaymentAdapter                                                    100%
  PatternKit.Examples.AdapterGeneratorDemo.StripePaymentClient                                                     100%
  PatternKit.Examples.AdapterGeneratorDemo.StripeRefundResponse                                                    100%
  PatternKit.Examples.AdapterGeneratorDemo.SystemClockAdapter                                                      100%
  PatternKit.Examples.ApiGateway.Demo                                                                             97.9%
  PatternKit.Examples.ApiGateway.MiniRouter                                                                       96.6%
  PatternKit.Examples.ApiGateway.Request                                                                            75%
  PatternKit.Examples.ApiGateway.Response                                                                          100%
  PatternKit.Examples.ApiGateway.Responses                                                                         100%
  PatternKit.Examples.AsyncStateDemo.ConnectionStateDemo                                                          93.5%
  PatternKit.Examples.BridgeDemo.BridgeDemo                                                                       96.7%
  PatternKit.Examples.Chain.AuthLoggingDemo                                                                       95.2%
  PatternKit.Examples.Chain.CardProcessors                                                                         100%
  PatternKit.Examples.Chain.CardTenderStrategy                                                                    77.7%
  PatternKit.Examples.Chain.CashTenderStrategy                                                                     100%
  PatternKit.Examples.Chain.ChainStage                                                                             100%
  PatternKit.Examples.Chain.CharityRoundUpRule                                                                      50%
  PatternKit.Examples.Chain.ConfigDriven.Bundle1OffEach                                                           14.2%
  PatternKit.Examples.Chain.ConfigDriven.CardTender                                                               72.2%
  PatternKit.Examples.Chain.ConfigDriven.Cash2Pct                                                                 16.6%
  PatternKit.Examples.Chain.ConfigDriven.CashTender                                                               90.9%
  PatternKit.Examples.Chain.ConfigDriven.CharityRoundUp                                                            100%
  PatternKit.Examples.Chain.ConfigDriven.ConfigDrivenPipelineBuilderExtensions                                    94.2%
  PatternKit.Examples.Chain.ConfigDriven.ConfigDrivenPipelineDemo                                                  100%
  PatternKit.Examples.Chain.ConfigDriven.Loyalty5Pct                                                                20%
  PatternKit.Examples.Chain.ConfigDriven.NickelCashOnly                                                           77.7%
  PatternKit.Examples.Chain.ConfigDriven.PipelineOptions                                                           100%
  PatternKit.Examples.Chain.Customer                                                                               100%
  PatternKit.Examples.Chain.DeviceBus                                                                              100%
  PatternKit.Examples.Chain.GenericProcessor                                                                       100%
  PatternKit.Examples.Chain.HttpRequest                                                                            100%
  PatternKit.Examples.Chain.IRoundingRule                                                                          100%
  PatternKit.Examples.Chain.LineItem                                                                               100%
  PatternKit.Examples.Chain.MediatedTransactionPipelineDemo                                                        100%
  PatternKit.Examples.Chain.NickelCashOnlyRule                                                                     100%
  PatternKit.Examples.Chain.NoopCharityTracker                                                                     100%
  PatternKit.Examples.Chain.RoundingPipeline                                                                       100%
  PatternKit.Examples.Chain.Tender                                                                                 100%
  PatternKit.Examples.Chain.TenderRouterFactory                                                                   91.3%
  PatternKit.Examples.Chain.TransactionContext                                                                     100%
  PatternKit.Examples.Chain.TransactionPipeline                                                                    100%
  PatternKit.Examples.Chain.TransactionPipelineBuilder                                                            92.3%
  PatternKit.Examples.Chain.TxResult                                                                               100%
  PatternKit.Examples.CompositeDemo.CompositeDemo                                                                  100%
  PatternKit.Examples.Decorators.CachingFileStorage                                                                  0%
  PatternKit.Examples.Decorators.FileStorageDecoratorBase                                                            0%
  PatternKit.Examples.Decorators.FileStorageDecorators                                                               0%
  PatternKit.Examples.Decorators.InMemoryFileStorage                                                                 0%
  PatternKit.Examples.Decorators.LoggingFileStorage                                                                  0%
  PatternKit.Examples.Decorators.RetryFileStorage                                                                    0%
  PatternKit.Examples.Decorators.StorageDecoratorDemo                                                                0%
  PatternKit.Examples.EnterpriseDemo.EnterpriseOrderDemo                                                          97.1%
  PatternKit.Examples.FacadeDemo.FacadeDemo                                                                        100%
  PatternKit.Examples.FlyweightDemo.FlyweightDemo                                                                 96.9%
  PatternKit.Examples.Generators.Builders.CorporateApplicationBuilderDemo.BackgroundJobsModule                     100%
  PatternKit.Examples.Generators.Builders.CorporateApplicationBuilderDemo.CorporateApp                             100%
  PatternKit.Examples.Generators.Builders.CorporateApplicationBuilderDemo.CorporateApplication                    21.4%
  PatternKit.Examples.Generators.Builders.CorporateApplicationBuilderDemo.CorporateApplicationBuilder             52.6%
  PatternKit.Examples.Generators.Builders.CorporateApplicationBuilderDemo.CorporateApplicationBuilderExtensions   94.7%
  PatternKit.Examples.Generators.Builders.CorporateApplicationBuilderDemo.CorporateApplicationDemo                27.2%
  PatternKit.Examples.Generators.Builders.CorporateApplicationBuilderDemo.CorporateAppState                        100%
  PatternKit.Examples.Generators.Builders.CorporateApplicationBuilderDemo.InMemoryJobScheduler                     100%
  PatternKit.Examples.Generators.Builders.CorporateApplicationBuilderDemo.MessagingModule                          100%
  PatternKit.Examples.Generators.Builders.CorporateApplicationBuilderDemo.NotificationOptions                        0%
  PatternKit.Examples.Generators.Builders.CorporateApplicationBuilderDemo.ObservabilityModule                      100%
  PatternKit.Examples.Generators.Builders.CorporateApplicationBuilderDemo.QueueNotificationPublisher               100%
  PatternKit.Examples.Generators.Builders.CorporateApplicationBuilderDemo.SecretsProvider                          100%
  PatternKit.Examples.Generators.Facade.BillingFacade                                                              100%
  PatternKit.Examples.Generators.Facade.BillingFacadeDemo                                                           96%
  PatternKit.Examples.Generators.Facade.BillingHost                                                               96.1%
  PatternKit.Examples.Generators.Facade.BillingResult                                                              100%
  PatternKit.Examples.Generators.Facade.DeliveryEstimator                                                           70%
  PatternKit.Examples.Generators.Facade.Invoice                                                                    100%
  PatternKit.Examples.Generators.Facade.InvoiceService                                                             100%
  PatternKit.Examples.Generators.Facade.NotificationService                                                         50%
  PatternKit.Examples.Generators.Facade.PaymentProcessor                                                            62%
  PatternKit.Examples.Generators.Facade.PaymentRecord                                                              100%
  PatternKit.Examples.Generators.Facade.PaymentResult                                                              100%
  PatternKit.Examples.Generators.Facade.RateCalculator                                                              75%
  PatternKit.Examples.Generators.Facade.RefundResult                                                                40%
  PatternKit.Examples.Generators.Facade.ShippingFacade                                                             100%
  PatternKit.Examples.Generators.Facade.ShippingFacadeDemo                                                         100%
  PatternKit.Examples.Generators.Facade.ShippingHost                                                              90.9%
  PatternKit.Examples.Generators.Facade.ShippingValidator                                                          100%
  PatternKit.Examples.Generators.Facade.TaxService                                                                91.6%
  PatternKit.Examples.Generators.Factories.ApplicationOrchestrator                                                   0%
  PatternKit.Examples.Generators.Factories.BackgroundWorker                                                        100%
  PatternKit.Examples.Generators.Factories.ConsoleMetricsSink                                                      100%
  PatternKit.Examples.Generators.Factories.MemoryCacheProvider                                                     100%
  PatternKit.Examples.Generators.Factories.OrchestratorStepFactory                                                13.4%
  PatternKit.Examples.Generators.Factories.SeedDataStep                                                            100%
  PatternKit.Examples.Generators.Factories.ServiceModuleBootstrap                                                  100%
  PatternKit.Examples.Generators.Factories.ServiceModules                                                           44%
  PatternKit.Examples.Generators.Factories.StartWorkersStep                                                        100%
  PatternKit.Examples.Generators.Factories.WarmCacheStep                                                           100%
  PatternKit.Examples.Generators.Memento.EditorStateDemo                                                             0%
  PatternKit.Examples.Generators.Memento.EditorStateHistory                                                          0%
  PatternKit.Examples.Generators.Memento.EditorStateMemento                                                          0%
  PatternKit.Examples.Generators.Memento.GameStateDemo                                                               0%
  PatternKit.Examples.Generators.Memento.GameStateHistory                                                            0%
  PatternKit.Examples.Generators.Memento.GameStateMemento                                                            0%
  PatternKit.Examples.Generators.Strategies.IntParser                                                               60%
  PatternKit.Examples.Generators.Strategies.OrderRouter                                                           95.2%
  PatternKit.Examples.Generators.Strategies.ScoreLabeler                                                           100%
  PatternKit.Examples.Generators.Visitors.Document                                                                   0%
  PatternKit.Examples.Generators.Visitors.DocumentActionVisitorBuilder                                               0%
  PatternKit.Examples.Generators.Visitors.DocumentAsyncActionVisitorBuilder                                          0%
  PatternKit.Examples.Generators.Visitors.DocumentAsyncVisitorBuilder<T>                                             0%
  PatternKit.Examples.Generators.Visitors.DocumentProcessingDemo                                                     0%
  PatternKit.Examples.Generators.Visitors.DocumentVisitorBuilder<T>                                                  0%
  PatternKit.Examples.Generators.Visitors.MarkdownDocument                                                           0%
  PatternKit.Examples.Generators.Visitors.PdfDocument                                                                0%
  PatternKit.Examples.Generators.Visitors.SpreadsheetDocument                                                        0%
  PatternKit.Examples.Generators.Visitors.WordDocument                                                               0%
  PatternKit.Examples.InterpreterDemo.InterpreterDemo                                                             93.1%
  PatternKit.Examples.IteratorDemo.IteratorDemo                                                                   98.8%
  PatternKit.Examples.MediatorDemo.AppMediator                                                                     100%
  PatternKit.Examples.MediatorDemo.AuditLogHandler                                                                 100%
  PatternKit.Examples.MediatorDemo.BoxHelper                                                                        25%
  PatternKit.Examples.MediatorDemo.CountUpCmd                                                                      100%
  PatternKit.Examples.MediatorDemo.CountUpHandler                                                                  100%
  PatternKit.Examples.MediatorDemo.EchoCmd                                                                         100%
  PatternKit.Examples.MediatorDemo.EchoHandler                                                                     100%
  PatternKit.Examples.MediatorDemo.LoggingBehavior<T1, T2>                                                         100%
  PatternKit.Examples.MediatorDemo.MediatorAssemblyScanner                                                         100%
  PatternKit.Examples.MediatorDemo.MediatorDemoSink                                                                100%
  PatternKit.Examples.MediatorDemo.MediatorRegistry                                                                100%
  PatternKit.Examples.MediatorDemo.PingCmd                                                                         100%
  PatternKit.Examples.MediatorDemo.PingHandler                                                                     100%
  PatternKit.Examples.MediatorDemo.ServiceCollectionExtensions                                                    83.3%
  PatternKit.Examples.MediatorDemo.SumCmd                                                                          100%
  PatternKit.Examples.MediatorDemo.SumCmdBehavior                                                                  100%
  PatternKit.Examples.MediatorDemo.SumHandler                                                                      100%
  PatternKit.Examples.MediatorDemo.UserCreated                                                                     100%
  PatternKit.Examples.MediatorDemo.WelcomeEmailHandler                                                             100%
  PatternKit.Examples.MementoDemo.MementoDemo                                                                     83.5%
  PatternKit.Examples.Messaging.CreateUser                                                                           0%
  PatternKit.Examples.Messaging.DispatcherUsageExamples                                                              0%
  PatternKit.Examples.Messaging.EmailSent                                                                            0%
  PatternKit.Examples.Messaging.OrderPlaced                                                                          0%
  PatternKit.Examples.Messaging.PagedItem                                                                            0%
  PatternKit.Examples.Messaging.PagedRequest                                                                         0%
  PatternKit.Examples.Messaging.SearchQuery                                                                          0%
  PatternKit.Examples.Messaging.SearchResult                                                                         0%
  PatternKit.Examples.Messaging.SendEmail                                                                            0%
  PatternKit.Examples.Messaging.SourceGenerated.ComprehensiveMediatorDemo                                            0%
  PatternKit.Examples.Messaging.SourceGenerated.CreateCustomerCommand                                                0%
  PatternKit.Examples.Messaging.SourceGenerated.CreateCustomerHandler                                                0%
  PatternKit.Examples.Messaging.SourceGenerated.Customer                                                             0%
  PatternKit.Examples.Messaging.SourceGenerated.CustomerCreatedEvent                                                 0%
  PatternKit.Examples.Messaging.SourceGenerated.GetCustomerHandler                                                   0%
  PatternKit.Examples.Messaging.SourceGenerated.GetCustomerQuery                                                     0%
  PatternKit.Examples.Messaging.SourceGenerated.GetOrdersByCustomerHandler                                           0%
  PatternKit.Examples.Messaging.SourceGenerated.GetOrdersByCustomerQuery                                             0%
  PatternKit.Examples.Messaging.SourceGenerated.InMemoryCustomerRepository                                           0%
  PatternKit.Examples.Messaging.SourceGenerated.InMemoryLogger                                                       0%
  PatternKit.Examples.Messaging.SourceGenerated.InMemoryOrderRepository                                              0%
  PatternKit.Examples.Messaging.SourceGenerated.InMemoryProductRepository                                            0%
  PatternKit.Examples.Messaging.SourceGenerated.LoggingBehavior<T1, T2>                                              0%
  PatternKit.Examples.Messaging.SourceGenerated.MediatorServiceCollectionExtensions                                  0%
  PatternKit.Examples.Messaging.SourceGenerated.NotifyInventoryHandler                                               0%
  PatternKit.Examples.Messaging.SourceGenerated.Order                                                                0%
  PatternKit.Examples.Messaging.SourceGenerated.OrderItem                                                            0%
  PatternKit.Examples.Messaging.SourceGenerated.OrderPlacedEvent                                                     0%
  PatternKit.Examples.Messaging.SourceGenerated.PaymentProcessedEvent                                                0%
  PatternKit.Examples.Messaging.SourceGenerated.PerformanceBehavior<T1, T2>                                          0%
  PatternKit.Examples.Messaging.SourceGenerated.PlaceOrderCommand                                                    0%
  PatternKit.Examples.Messaging.SourceGenerated.PlaceOrderHandler                                                    0%
  PatternKit.Examples.Messaging.SourceGenerated.ProcessPaymentCommand                                                0%
  PatternKit.Examples.Messaging.SourceGenerated.ProcessPaymentHandler                                                0%
  PatternKit.Examples.Messaging.SourceGenerated.ProductionDispatcher                                                 0%
  PatternKit.Examples.Messaging.SourceGenerated.ProductSearchResult                                                  0%
  PatternKit.Examples.Messaging.SourceGenerated.RecordPaymentAuditHandler                                            0%
  PatternKit.Examples.Messaging.SourceGenerated.SearchProductsHandler                                                0%
  PatternKit.Examples.Messaging.SourceGenerated.SearchProductsQuery                                                  0%
  PatternKit.Examples.Messaging.SourceGenerated.SendOrderConfirmationHandler                                         0%
  PatternKit.Examples.Messaging.SourceGenerated.SendWelcomeEmailHandler                                              0%
  PatternKit.Examples.Messaging.SourceGenerated.TransactionBehavior<T1, T2>                                          0%
  PatternKit.Examples.Messaging.SourceGenerated.UpdateCustomerStatsHandler                                           0%
  PatternKit.Examples.Messaging.SourceGenerated.ValidationBehavior<T1, T2>                                           0%
  PatternKit.Examples.Messaging.UserCreated                                                                          0%
  PatternKit.Examples.Messaging.UserRegistered                                                                       0%
  PatternKit.Examples.ObserverDemo.EventHub<T>                                                                     100%
  PatternKit.Examples.ObserverDemo.LineItem                                                                        100%
  PatternKit.Examples.ObserverDemo.ObservableList<T>                                                                47%
  PatternKit.Examples.ObserverDemo.ObservableVar<T>                                                                100%
  PatternKit.Examples.ObserverDemo.ProfileViewModel                                                                100%
  PatternKit.Examples.ObserverDemo.PropertyChangedHub                                                              100%
  PatternKit.Examples.ObserverDemo.ReactiveTransaction                                                            95.4%
  PatternKit.Examples.ObserverDemo.UserEvent                                                                       100%
  PatternKit.Examples.PatternShowcase.PatternShowcase                                                             91.2%
  PatternKit.Examples.PointOfSale.CustomerInfo                                                                     100%
  PatternKit.Examples.PointOfSale.Demo                                                                            99.6%
  PatternKit.Examples.PointOfSale.OrderLineItem                                                                    100%
  PatternKit.Examples.PointOfSale.PaymentProcessorDemo                                                            95.7%
  PatternKit.Examples.PointOfSale.PaymentReceipt                                                                   100%
  PatternKit.Examples.PointOfSale.PromotionConfig                                                                  100%
  PatternKit.Examples.PointOfSale.PurchaseOrder                                                                    100%
  PatternKit.Examples.PointOfSale.ReceiptLineItem                                                                  100%
  PatternKit.Examples.PointOfSale.StoreLocation                                                                    100%
  PatternKit.Examples.Pricing.ApiPricingSource                                                                     100%
  PatternKit.Examples.Pricing.CharityRoundUpRule                                                                   100%
  PatternKit.Examples.Pricing.Coupon                                                                               100%
  PatternKit.Examples.Pricing.DbPricingSource                                                                      100%
  PatternKit.Examples.Pricing.DefaultSourceRouting                                                                83.3%
  PatternKit.Examples.Pricing.FilePricingSource                                                                    100%
  PatternKit.Examples.Pricing.LineItem                                                                             100%
  PatternKit.Examples.Pricing.Location                                                                             100%
  PatternKit.Examples.Pricing.LoyaltyMembership                                                                    100%
  PatternKit.Examples.Pricing.NickelCashOnlyRule                                                                   100%
  PatternKit.Examples.Pricing.PercentLoyaltyRule                                                                   100%
  PatternKit.Examples.Pricing.PricingContext                                                                       100%
  PatternKit.Examples.Pricing.PricingDemo                                                                         56.7%
  PatternKit.Examples.Pricing.PricingPipeline                                                                      100%
  PatternKit.Examples.Pricing.PricingPipelineBuilder                                                               100%
  PatternKit.Examples.Pricing.PricingResult                                                                        100%
  PatternKit.Examples.Pricing.RegionCategoryTaxPolicy                                                              100%
  PatternKit.Examples.Pricing.Sku                                                                                 85.7%
  PatternKit.Examples.Pricing.SourceRouter                                                                        92.3%
  PatternKit.Examples.PrototypeDemo.PrototypeDemo                                                                  100%
  PatternKit.Examples.ProxyDemo.ProxyDemo                                                                         94.5%
  PatternKit.Examples.ProxyGeneratorDemo.GetTransactionHistoryMethodContext                                          0%
  PatternKit.Examples.ProxyGeneratorDemo.Interceptors.AuthenticationInterceptor                                      0%
  PatternKit.Examples.ProxyGeneratorDemo.Interceptors.CachingInterceptor                                             0%
  PatternKit.Examples.ProxyGeneratorDemo.Interceptors.LoggingInterceptor                                             0%
  PatternKit.Examples.ProxyGeneratorDemo.Interceptors.RetryInterceptor                                               0%
  PatternKit.Examples.ProxyGeneratorDemo.Interceptors.TimingInterceptor                                              0%
  PatternKit.Examples.ProxyGeneratorDemo.PaymentRequest                                                              0%
  PatternKit.Examples.ProxyGeneratorDemo.PaymentResult                                                               0%
  PatternKit.Examples.ProxyGeneratorDemo.PaymentServiceProxy                                                         0%
  PatternKit.Examples.ProxyGeneratorDemo.ProcessPaymentAsyncMethodContext                                            0%
  PatternKit.Examples.ProxyGeneratorDemo.ProcessPaymentMethodContext                                                 0%
  PatternKit.Examples.ProxyGeneratorDemo.ProxyGeneratorDemo                                                          0%
  PatternKit.Examples.ProxyGeneratorDemo.RealPaymentService                                                          0%
  PatternKit.Examples.ProxyGeneratorDemo.Transaction                                                                 0%
  PatternKit.Examples.Singleton.DeviceRegistry                                                                     100%
  PatternKit.Examples.Singleton.PosAppState                                                                        100%
  PatternKit.Examples.Singleton.PosAppStateDemo                                                                    100%
  PatternKit.Examples.Singleton.PricingCache                                                                       100%
  PatternKit.Examples.Singleton.StoreConfig                                                                        100%
  PatternKit.Examples.SingletonGeneratorDemo.AppClock                                                             81.8%
  PatternKit.Examples.SingletonGeneratorDemo.ConfigManager                                                        92.5%
  PatternKit.Examples.SingletonGeneratorDemo.ServiceRegistry                                                      96.4%
  PatternKit.Examples.StateDemo.OrderStateDemo                                                                     100%
  PatternKit.Examples.Strategies.Coercion.Coercer<T>                                                              83.3%
  PatternKit.Examples.Strategies.Coercion.CoercerExtensions                                                        100%
  PatternKit.Examples.Strategies.Composed.ChannelPolicy                                                            100%
  PatternKit.Examples.Strategies.Composed.ChannelPolicyFactory                                                     100%
  PatternKit.Examples.Strategies.Composed.ComposedStrategies                                                      94.2%
  PatternKit.Examples.Strategies.Composed.SendContext                                                              100%
  PatternKit.Examples.Strategies.Composed.SendResult                                                               100%
  PatternKit.Examples.TemplateDemo.AsyncDataPipeline                                                               100%
  PatternKit.Examples.TemplateDemo.DataProcessor                                                                   100%
  PatternKit.Examples.TemplateDemo.TemplateAsyncFluentDemo                                                         100%
  PatternKit.Examples.TemplateDemo.TemplateFluentDemo                                                               90%
  PatternKit.Examples.TemplateDemo.TemplateMethodDemo                                                              100%
  PatternKit.Examples.TemplateMethodGeneratorDemo.DataRecord                                                       100%
  PatternKit.Examples.TemplateMethodGeneratorDemo.ImportContext                                                    100%
  PatternKit.Examples.TemplateMethodGeneratorDemo.ImportWorkflow                                                   100%
  PatternKit.Examples.TemplateMethodGeneratorDemo.ImportWorkflowDemo                                              88.4%
  PatternKit.Examples.TemplateMethodGeneratorDemo.OrderContext                                                     100%
  PatternKit.Examples.TemplateMethodGeneratorDemo.OrderProcessingDemo                                             85.7%
  PatternKit.Examples.TemplateMethodGeneratorDemo.OrderProcessingWorkflow                                           97%
  PatternKit.Examples.VisitorDemo.Card                                                                             100%
  PatternKit.Examples.VisitorDemo.Cash                                                                             100%
  PatternKit.Examples.VisitorDemo.CountersHandler                                                                  100%
  PatternKit.Examples.VisitorDemo.Demo                                                                             100%
  PatternKit.Examples.VisitorDemo.GiftCard                                                                         100%
  PatternKit.Examples.VisitorDemo.ReceiptRendering                                                                 100%
  PatternKit.Examples.VisitorDemo.Routing                                                                          100%
  PatternKit.Examples.VisitorDemo.StoreCredit                                                                      100%
  PatternKit.Examples.VisitorDemo.Tender                                                                           100%
  PatternKit.Examples.VisitorDemo.Unknown                                                                          100%

PatternKit.Generators                                                                                             91.8%
  PatternKit.Generators.Adapter.AdapterGenerator                                                                  90.7%
  PatternKit.Generators.Builders.BuilderGenerator                                                                 96.3%
  PatternKit.Generators.ComposerGenerator                                                                         87.6%
  PatternKit.Generators.DecoratorGenerator                                                                        90.5%
  PatternKit.Generators.FacadeGenerator                                                                           92.8%
  PatternKit.Generators.Factories.FactoriesGenerator                                                              86.6%
  PatternKit.Generators.MementoGenerator                                                                          94.8%
  PatternKit.Generators.Messaging.DispatcherGenerator                                                             98.1%
  PatternKit.Generators.PrototypeGenerator                                                                        95.3%
  PatternKit.Generators.ProxyGenerator                                                                              85%
  PatternKit.Generators.Singleton.SingletonGenerator                                                              98.1%
  PatternKit.Generators.StrategyGenerator                                                                         93.9%
  PatternKit.Generators.TemplateGenerator                                                                         84.6%
  PatternKit.Generators.VisitorGenerator                                                                          99.4%

PatternKit.Generators.Abstractions                                                                                30.7%
  PatternKit.Generators.Adapter.AdapterMapAttribute                                                                  0%
  PatternKit.Generators.Adapter.GenerateAdapterAttribute                                                             0%
  PatternKit.Generators.Builders.BuilderRequiredAttribute                                                          100%
  PatternKit.Generators.Builders.GenerateBuilderAttribute                                                          100%
  PatternKit.Generators.Composer.ComposerAttribute                                                                   0%
  PatternKit.Generators.Composer.ComposeStepAttribute                                                                0%
  PatternKit.Generators.Decorator.GenerateDecoratorAttribute                                                         0%
  PatternKit.Generators.Facade.FacadeExposeAttribute                                                                 0%
  PatternKit.Generators.Facade.FacadeMapAttribute                                                                    0%
  PatternKit.Generators.Facade.GenerateFacadeAttribute                                                               0%
  PatternKit.Generators.Factories.FactoryCaseAttribute                                                             100%
  PatternKit.Generators.Factories.FactoryClassAttribute                                                            100%
  PatternKit.Generators.Factories.FactoryClassKeyAttribute                                                         100%
  PatternKit.Generators.Factories.FactoryMethodAttribute                                                           100%
  PatternKit.Generators.GenerateStrategyAttribute                                                                  100%
  PatternKit.Generators.MementoAttribute                                                                             0%
  PatternKit.Generators.MementoStrategyAttribute                                                                     0%
  PatternKit.Generators.Messaging.GenerateDispatcherAttribute                                                        0%
  PatternKit.Generators.Prototype.PrototypeAttribute                                                                 0%
  PatternKit.Generators.Prototype.PrototypeStrategyAttribute                                                         0%
  PatternKit.Generators.Proxy.GenerateProxyAttribute                                                                 0%
  PatternKit.Generators.Singleton.SingletonAttribute                                                                 0%
  PatternKit.Generators.Template.TemplateAttribute                                                                   0%
  PatternKit.Generators.Template.TemplateHookAttribute                                                               0%
  PatternKit.Generators.Template.TemplateStepAttribute                                                               0%
  PatternKit.Generators.Visitors.GenerateVisitorAttribute                                                            0%

Copy link
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

Copilot reviewed 9 out of 9 changed files in this pull request and generated 1 comment.


💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

@JerrettDavis JerrettDavis merged commit 4e11dad into main Feb 13, 2026
17 checks passed
@JerrettDavis JerrettDavis deleted the feat/adapter-generator branch February 13, 2026 19:57
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Generator: Create Adapter Pattern

2 participants