1// SPDX-FileCopyrightText: 2026 The Project Pterodactyl Developers
2//
3// SPDX-License-Identifier: MPL-2.0
4
5import PterodactylCore
6import PterodactylFeedback
7
8public struct ElabError: Error, HasProvenance {
9 public var feedback: Feedback
10
11 public init(_ feedback: Feedback) {
12 self.feedback = feedback
13 }
14
15 public init(_ diagnostic: Diagnostic) {
16 self.feedback = .diagnostic(diagnostic)
17 }
18
19 public var provenance: Range<Int>? {
20 switch feedback {
21 case .diagnostic(let diagnostic):
22 diagnostic.utf16Range
23 case .inlay(let inlayHint):
24 inlayHint.utf16Offset..<inlayHint.utf16Offset
25 }
26 }
27}