35 references to MatchStage
Microsoft.NET.Sdk.StaticWebAssets.Tasks (35)
Utils\Globbing\StaticWebAssetGlobMatcher.cs (35)
48var stage = state.Stage;
54case MatchStage.Done:
67case MatchStage.Literal:
76case MatchStage.Extension:
85case MatchStage.Complex:
94case MatchStage.WildCard:
103case MatchStage.RecursiveWildCard:
346internal struct MatchState(GlobNode node, MatchStage stage, int segmentIndex, int extensionSegmentIndex, int complexSegmentIndex)
352public MatchStage Stage { get; set; } = stage;
365public readonly void Deconstruct(out GlobNode node, out MatchStage stage, out int segmentIndex, out int extensionIndex, out int complexIndex)
381case MatchStage.Literal:
384return new(Node, MatchStage.Extension, SegmentIndex, 0, 0)
390return new(Node, MatchStage.Complex, SegmentIndex, 0, 0)
396return new(Node, MatchStage.WildCard, SegmentIndex, 0, 0)
402return new(Node, MatchStage.RecursiveWildCard, SegmentIndex, 0, 0)
406case MatchStage.Extension:
409return new(Node, MatchStage.Complex, SegmentIndex, 0, 0)
415return new(Node, MatchStage.WildCard, SegmentIndex, 0, 0)
421return new(Node, MatchStage.RecursiveWildCard, SegmentIndex, 0, 0)
425case MatchStage.Complex:
428return new(Node, MatchStage.WildCard, SegmentIndex, 0, 0)
433return new(Node, MatchStage.RecursiveWildCard, SegmentIndex, 0, 0)
437case MatchStage.WildCard:
440return new(Node, MatchStage.RecursiveWildCard, SegmentIndex, 0, 0)
444case MatchStage.RecursiveWildCard:
445return new(Node, MatchStage.Done, SegmentIndex, 0, 0)
452private static MatchStage GetInitialStage(GlobNode node)
456return MatchStage.Literal;
461return MatchStage.Extension;
466return MatchStage.Complex;
471return MatchStage.WildCard;
476return MatchStage.RecursiveWildCard;
479return MatchStage.Done;
482internal readonly MatchState NextExtension(int extensionIndex) => new(Node, MatchStage.Extension, SegmentIndex, extensionIndex, ComplexSegmentIndex);
484internal readonly MatchState NextComplex() => new(Node, MatchStage.Complex, SegmentIndex, ExtensionSegmentIndex, ComplexSegmentIndex + 1);