< Summary

Information
Class: Trailblazer.Pathing.NavigationMapCommitOperation
Assembly: Trailblazer
File(s): /home/runner/work/Trailblazer/Trailblazer/src/Trailblazer/Pathing/Map/Operations/NavigationMapCommitOperation.cs
Line coverage
100%
Covered lines: 15
Uncovered lines: 0
Coverable lines: 15
Total lines: 51
Line coverage: 100%
Branch coverage
100%
Covered branches: 6
Total branches: 6
Branch coverage: 100%
Method coverage

Feature is only available for sponsors

Upgrade to PRO version

Metrics

MethodBranch coverage Crap Score Cyclomatic complexity Line coverage
.ctor(...)100%66100%

File(s)

/home/runner/work/Trailblazer/Trailblazer/src/Trailblazer/Pathing/Map/Operations/NavigationMapCommitOperation.cs

#LineLine coverage
 1//=======================================================================
 2// NavigationMapCommitOperation.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>Describes one deterministic prepared-map install or replacement operation.</summary>
 11public readonly struct NavigationMapCommitOperation
 12{
 13    /// <summary>Initializes an immutable prepared-map operation and its pending receipt.</summary>
 14    public NavigationMapCommitOperation(
 15        PreparedNavigationMap preparedMap,
 16        OverlayReplacementPolicy overlayReplacementPolicy,
 17        long operationSequence,
 18        int effectiveFrame)
 19    {
 131120        SwiftThrowHelper.ThrowIfNull(preparedMap, nameof(preparedMap));
 131121        SwiftThrowHelper.ThrowIfArgument(
 131122            overlayReplacementPolicy is < OverlayReplacementPolicy.PreserveAndRevalidate or > OverlayReplacementPolicy.C
 131123            nameof(overlayReplacementPolicy));
 130924        SwiftThrowHelper.ThrowIfArgument(
 130925            preparedMap.CheckpointStamp.HasValue && overlayReplacementPolicy != OverlayReplacementPolicy.Clear,
 130926            nameof(overlayReplacementPolicy),
 130927            "A checkpoint-stamped map can only commit with the Clear replacement policy.");
 130928        NavigationOperationValidation.ValidateSchedule(operationSequence, effectiveFrame);
 29
 130930        PreparedMap = preparedMap;
 130931        OverlayReplacementPolicy = overlayReplacementPolicy;
 130932        OperationSequence = operationSequence;
 130933        EffectiveFrame = effectiveFrame;
 130934        Receipt = new NavigationOperationReceipt(operationSequence, effectiveFrame);
 130935    }
 36
 37    /// <summary>Gets the prepared inert map.</summary>
 38    public PreparedNavigationMap PreparedMap { get; }
 39
 40    /// <summary>Gets the overlay replacement policy.</summary>
 41    public OverlayReplacementPolicy OverlayReplacementPolicy { get; }
 42
 43    /// <summary>Gets the unique host-supplied operation sequence.</summary>
 44    public long OperationSequence { get; }
 45
 46    /// <summary>Gets the earliest eligible fixed-step publication frame.</summary>
 47    public int EffectiveFrame { get; }
 48
 49    /// <summary>Gets the operation's deterministic pending or terminal receipt.</summary>
 50    public NavigationOperationReceipt Receipt { get; }
 51}