< Summary

Information
Class: Trailblazer.Pathing.TraversalTransitionOverlayOperation
Assembly: Trailblazer
File(s): /home/runner/work/Trailblazer/Trailblazer/src/Trailblazer/Pathing/Map/Overlay/TraversalTransitionOverlayOperation.cs
Line coverage
100%
Covered lines: 12
Uncovered lines: 0
Coverable lines: 12
Total lines: 66
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%
Upsert(...)100%11100%
Suppress(...)100%11100%
RevertToBake(...)100%11100%

File(s)

/home/runner/work/Trailblazer/Trailblazer/src/Trailblazer/Pathing/Map/Overlay/TraversalTransitionOverlayOperation.cs

#LineLine coverage
 1//=======================================================================
 2// TraversalTransitionOverlayOperation.cs
 3//=======================================================================
 4// MIT License, Copyright (c) 2024-present David Oravsky (mrdav30)
 5// See LICENSE file in the project root for full license information.
 6//=======================================================================
 7
 8namespace Trailblazer.Pathing;
 9
 10/// <summary>Identifies the final-state action for a source-owned semantic transition.</summary>
 11public enum TraversalTransitionOverlayOperationKind
 12{
 13    /// <summary>Write or replace a complete transition definition.</summary>
 14    Upsert = 0,
 15
 16    /// <summary>Tombstone the effective source-owned transition.</summary>
 17    Suppress = 1,
 18
 19    /// <summary>Remove the override or tombstone and restore the baked definition.</summary>
 20    RevertToBake = 2
 21}
 22
 23/// <summary>Describes one immutable source-owned transition overlay operation.</summary>
 24public readonly struct TraversalTransitionOverlayOperation
 25{
 26    private TraversalTransitionOverlayOperation(
 27        string id,
 28        TraversalTransitionOverlayOperationKind kind,
 29        TraversalTransitionDefinition transition)
 30    {
 412631        SwiftThrowHelper.ThrowIfNull(id, nameof(id));
 412632        SwiftThrowHelper.ThrowIfArgument(
 412633            string.IsNullOrWhiteSpace(id),
 412634            nameof(id),
 412635            "Transition id cannot be empty or whitespace.");
 36
 412637        Id = id;
 412638        Kind = kind;
 412639        Transition = transition;
 412640    }
 41
 42    /// <summary>Gets the stable source-map-local transition identifier.</summary>
 43    public string Id { get; }
 44
 45    /// <summary>Gets the final-state operation kind.</summary>
 46    public TraversalTransitionOverlayOperationKind Kind { get; }
 47
 48    /// <summary>
 49    /// Gets the complete definition for <see cref="TraversalTransitionOverlayOperationKind.Upsert"/>.
 50    /// The value is ignored for suppression and reversion.
 51    /// </summary>
 52    public TraversalTransitionDefinition Transition { get; }
 53
 54    /// <summary>Creates an Upsert operation from a complete transition definition.</summary>
 55    public static TraversalTransitionOverlayOperation Upsert(TraversalTransitionDefinition transition) =>
 411456        new(transition.Id, TraversalTransitionOverlayOperationKind.Upsert, transition);
 57
 58    /// <summary>Creates a source-owned transition tombstone.</summary>
 59    public static TraversalTransitionOverlayOperation Suppress(string id) =>
 960        new(id, TraversalTransitionOverlayOperationKind.Suppress, default);
 61
 62    /// <summary>Creates an operation that restores the baked source-owned transition.</summary>
 63    public static TraversalTransitionOverlayOperation RevertToBake(string id) =>
 364        new(id, TraversalTransitionOverlayOperationKind.RevertToBake, default);
 65
 66}