hyf

Context-aware query service for Radroots
git clone https://radroots.dev/git/hyf.git
Log | Files | Refs | README | LICENSE

review.mojo (1299B)


      1 from std.collections import List
      2 
      3 
      4 @fieldwise_init
      5 struct Clarification(Copyable, Movable):
      6     var field: String
      7     var reason: String
      8 
      9 
     10 @fieldwise_init
     11 struct ReviewState(Copyable, Movable):
     12     var required: Bool
     13     var clarifications: List[Clarification]
     14 
     15 
     16 def review_clear() -> ReviewState:
     17     return ReviewState(required=False, clarifications=List[Clarification]())
     18 
     19 
     20 def review_required(field: String, reason: String) raises -> ReviewState:
     21     if field.strip() == "" or reason.strip() == "":
     22         raise Error("clarification requires field and reason")
     23     var clarifications = List[Clarification]()
     24     clarifications.append(
     25         Clarification(field=String(field), reason=String(reason))
     26     )
     27     return ReviewState(required=True, clarifications=clarifications^)
     28 
     29 
     30 def review_add(
     31     state: ReviewState, field: String, reason: String
     32 ) raises -> ReviewState:
     33     if field.strip() == "" or reason.strip() == "":
     34         raise Error("clarification requires field and reason")
     35     var clarifications = List[Clarification]()
     36     for existing in state.clarifications:
     37         clarifications.append(existing.copy())
     38     clarifications.append(
     39         Clarification(field=String(field), reason=String(reason))
     40     )
     41     return ReviewState(required=True, clarifications=clarifications^)