damus

nostr ios client
git clone git://jb55.com/damus
Log | Files | Refs | README | LICENSE

NostrRequest.swift (1046B)


      1 //
      2 //  NostrRequest.swift
      3 //  damus
      4 //
      5 //  Created by William Casarin on 2022-04-12.
      6 //
      7 
      8 import Foundation
      9 
     10 struct NostrSubscribe {
     11     let filters: [NostrFilter]
     12     let sub_id: String
     13 }
     14 
     15 
     16 enum NostrRequestType {
     17     case typical(NostrRequest)
     18     case custom(String)
     19     
     20     var is_write: Bool {
     21         guard case .typical(let req) = self else {
     22             return true
     23         }
     24         
     25         return req.is_write
     26     }
     27     
     28     var is_read: Bool {
     29         guard case .typical(let req) = self else {
     30             return true
     31         }
     32         
     33         return req.is_read
     34     }
     35 }
     36 
     37 enum NostrRequest {
     38     case subscribe(NostrSubscribe)
     39     case unsubscribe(String)
     40     case event(NostrEvent)
     41     case auth(NostrEvent)
     42 
     43     var is_write: Bool {
     44         switch self {
     45         case .subscribe:
     46             return false
     47         case .unsubscribe:
     48             return false
     49         case .event:
     50             return true
     51         case .auth:
     52             return false
     53         }
     54     }
     55     
     56     var is_read: Bool {
     57         return !is_write
     58     }
     59     
     60 }