< Summary

Information
Class: NexusLabs.Needlr.Generators.Models.DiscoveredComposedMarker
Assembly: NexusLabs.Needlr.Generators
File(s): /home/runner/work/needlr/needlr/src/NexusLabs.Needlr.Generators/Models/Composition/DiscoveredComposedMarker.cs
Line coverage
100%
Covered lines: 13
Uncovered lines: 0
Coverable lines: 13
Total lines: 44
Line coverage: 100%
Branch coverage
N/A
Covered branches: 0
Total branches: 0
Branch coverage: N/A
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%11100%
get_CompositionType()100%11100%
get_SourceOpenGenericInterface()100%11100%
get_AsServiceType()100%11100%
get_Lifetime()100%11100%
get_AssemblyName()100%11100%
get_SourceFilePath()100%11100%

File(s)

/home/runner/work/needlr/needlr/src/NexusLabs.Needlr.Generators/Models/Composition/DiscoveredComposedMarker.cs

#LineLine coverage
 1using Microsoft.CodeAnalysis;
 2
 3namespace NexusLabs.Needlr.Generators.Models;
 4
 5/// <summary>
 6/// A discovered <c>[RegisterClosedOverImplementationsOf]</c> marker on an open generic composition type,
 7/// captured during type collection for later expansion into closed registrations.
 8/// </summary>
 9internal readonly struct DiscoveredComposedMarker
 10{
 11    public DiscoveredComposedMarker(
 12        INamedTypeSymbol compositionType,
 13        INamedTypeSymbol sourceOpenGenericInterface,
 14        INamedTypeSymbol? asServiceType,
 15        GeneratorLifetime lifetime,
 16        string assemblyName,
 17        string? sourceFilePath)
 18    {
 6819        CompositionType = compositionType;
 6820        SourceOpenGenericInterface = sourceOpenGenericInterface;
 6821        AsServiceType = asServiceType;
 6822        Lifetime = lifetime;
 6823        AssemblyName = assemblyName;
 6824        SourceFilePath = sourceFilePath;
 6825    }
 26
 27    /// <summary>The open generic composition type carrying the attribute (e.g., FooCore{TData}).</summary>
 26428    public INamedTypeSymbol CompositionType { get; }
 29
 30    /// <summary>The open generic interface whose closed implementations drive registration (e.g., IFooDefinition{}).</s
 10231    public INamedTypeSymbol SourceOpenGenericInterface { get; }
 32
 33    /// <summary>The facade service type each closed composition is registered as, or null if unspecified.</summary>
 13634    public INamedTypeSymbol? AsServiceType { get; }
 35
 36    /// <summary>The lifetime each closed registration is given.</summary>
 5437    public GeneratorLifetime Lifetime { get; }
 38
 39    /// <summary>The name of the assembly that declared the composition type.</summary>
 5440    public string AssemblyName { get; }
 41
 42    /// <summary>The source file path of the composition type, if available.</summary>
 8843    public string? SourceFilePath { get; }
 44}