66
77// ── Core types ──────────────────────────────────────────────────────────
88
9- #[ derive( Debug , Clone , PartialEq ) ]
9+ #[ derive( Debug , Clone , PartialEq , serde :: Serialize ) ]
1010pub struct Span {
1111 pub start : usize ,
1212 pub end : usize ,
1313}
1414
15- #[ derive( Debug , Clone , PartialEq ) ]
15+ #[ derive( Debug , Clone , PartialEq , serde:: Serialize ) ]
16+ #[ serde( rename_all = "snake_case" ) ]
1617pub enum ValueAccessor {
1718 /// `.answer.value` (bare)
1819 Value ,
@@ -22,7 +23,8 @@ pub enum ValueAccessor {
2223 Display ,
2324}
2425
25- #[ derive( Debug , Clone , PartialEq ) ]
26+ #[ derive( Debug , Clone , PartialEq , serde:: Serialize ) ]
27+ #[ serde( tag = "type" , rename_all = "snake_case" ) ]
2628pub enum AnnotationKind {
2729 /// Path navigating to a QR answer value.
2830 AnswerReference {
@@ -39,19 +41,21 @@ pub enum AnnotationKind {
3941 } ,
4042}
4143
42- #[ derive( Debug , Clone , PartialEq ) ]
44+ #[ derive( Debug , Clone , PartialEq , serde :: Serialize ) ]
4345pub struct Annotation {
4446 pub span : Span ,
4547 pub kind : AnnotationKind ,
4648}
4749
48- #[ derive( Debug , Clone , PartialEq ) ]
50+ #[ derive( Debug , Clone , PartialEq , serde:: Serialize ) ]
51+ #[ serde( rename_all = "snake_case" ) ]
4952pub enum Severity {
5053 Error ,
5154 Warning ,
5255}
5356
54- #[ derive( Debug , Clone , PartialEq ) ]
57+ #[ derive( Debug , Clone , PartialEq , serde:: Serialize ) ]
58+ #[ serde( rename_all = "snake_case" ) ]
5559pub enum DiagnosticCode {
5660 UnknownLinkId ,
5761 UnreachableLinkId ,
@@ -61,7 +65,7 @@ pub enum DiagnosticCode {
6165 ContextUnreachableFromParent ,
6266}
6367
64- #[ derive( Debug , Clone , PartialEq ) ]
68+ #[ derive( Debug , Clone , PartialEq , serde :: Serialize ) ]
6569pub struct Diagnostic {
6670 pub span : Span ,
6771 pub severity : Severity ,
@@ -86,7 +90,7 @@ pub struct AnalysisContext {
8690}
8791
8892/// Result of analyzing a FHIRPath expression.
89- #[ derive( Debug , Clone , PartialEq ) ]
93+ #[ derive( Debug , Clone , PartialEq , serde :: Serialize ) ]
9094pub struct ExpressionAnalysis {
9195 pub annotations : Vec < Annotation > ,
9296 pub diagnostics : Vec < Diagnostic > ,
0 commit comments