< Summary

Information
Class: Trailblazer.Pathing.NavigationOperationFrameChange
Assembly: Trailblazer
File(s): /home/runner/work/Trailblazer/Trailblazer/src/Trailblazer/Pathing/Map/Operations/NavigationOperationFrameChange.cs
Line coverage
100%
Covered lines: 28
Uncovered lines: 0
Coverable lines: 28
Total lines: 80
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%
MapCommit(...)100%11100%
MapRemove(...)100%11100%
Overlay(...)100%11100%

File(s)

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

#LineLine coverage
 1//=======================================================================
 2// NavigationOperationFrameChange.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
 10internal enum NavigationOperationFrameChangeKind
 11{
 12    MapCommit,
 13    MapRemove,
 14    Overlay
 15}
 16
 17internal readonly struct NavigationOperationFrameChange
 18{
 19    private NavigationOperationFrameChange(
 20        NavigationOperationFrameChangeKind kind,
 21        string? mapId,
 22        PreparedNavigationMap? preparedMap,
 23        PreparedNavigationOverlay? preparedOverlay,
 24        OverlayReplacementPolicy replacementPolicy,
 25        long operationSequence)
 26    {
 3840027        Kind = kind;
 3840028        MapId = mapId;
 3840029        PreparedMap = preparedMap;
 3840030        PreparedOverlay = preparedOverlay;
 3840031        ReplacementPolicy = replacementPolicy;
 3840032        OperationSequence = operationSequence;
 3840033    }
 34
 35    internal NavigationOperationFrameChangeKind Kind { get; }
 36    internal string? MapId { get; }
 37    internal PreparedNavigationMap? PreparedMap { get; }
 38    internal PreparedNavigationOverlay? PreparedOverlay { get; }
 39    internal OverlayReplacementPolicy ReplacementPolicy { get; }
 40    internal long OperationSequence { get; }
 41
 42    internal static NavigationOperationFrameChange MapCommit(
 43        PreparedNavigationMap map,
 44        OverlayReplacementPolicy replacementPolicy,
 3742145        long operationSequence) => new(
 3742146        NavigationOperationFrameChangeKind.MapCommit,
 3742147        map.Map.MapId,
 3742148        map,
 3742149        preparedOverlay: null,
 3742150        replacementPolicy,
 3742151        operationSequence);
 52
 53    internal static NavigationOperationFrameChange MapRemove(
 54        string mapId,
 1855        long operationSequence) => new(
 1856        NavigationOperationFrameChangeKind.MapRemove,
 1857        mapId,
 1858        preparedMap: null,
 1859        preparedOverlay: null,
 1860        OverlayReplacementPolicy.PreserveAndRevalidate,
 1861        operationSequence);
 62
 63    internal static NavigationOperationFrameChange Overlay(
 64        PreparedNavigationOverlay overlay,
 96165        long operationSequence) => new(
 96166        NavigationOperationFrameChangeKind.Overlay,
 96167        mapId: null,
 96168        preparedMap: null,
 96169        overlay,
 96170        OverlayReplacementPolicy.PreserveAndRevalidate,
 96171        operationSequence);
 72}
 73
 74internal delegate NavigationCandidatePublication NavigationCandidatePublisher(
 75    NavigationOperationCandidate candidate,
 76    int frame,
 77    NavigationOperationFrameChange[] changes,
 78    int changeCount);
 79
 80internal delegate bool NavigationRetainedWorkGuard(long retainedBytes, int persistentPages);