func parseRxVar()

in Sources/MockoloFramework/Utils/SwiftType.swift [464:498]


    func parseRxVar(overrides: [String: String]?, overrideKey: String, isInitParam: Bool) -> (String, String, String?)? {
        guard (self.isNominal(named: .observable) || self.isNominal(named: .rxObservable)),
              case .nominal(let nominal) = kind,
              !nominal.genericParameterTypes.isEmpty else {
            return nil
        }
        let typeParams = nominal.genericParameterTypes.map(\.description).joined(separator: ", ")

        var subjectKind = ""
        var underlyingSubjectType = ""
        if let rxTypes = overrides {
            if let val = rxTypes[overrideKey], val.hasSuffix(String.subjectSuffix) {
                subjectKind = val
            } else if let val = rxTypes["all"], val.hasSuffix(String.subjectSuffix) {
                subjectKind = val
            }
        }

        if subjectKind.isEmpty {
            subjectKind = String.publishSubject
        }
        underlyingSubjectType = "\(subjectKind)<\(typeParams)>"

        var underlyingSubjectTypeDefaultVal: String? = nil
        if subjectKind == String.publishSubject {
            underlyingSubjectTypeDefaultVal = "\(underlyingSubjectType)()"
        } else if subjectKind == String.replaySubject {
            underlyingSubjectTypeDefaultVal = "\(underlyingSubjectType)\(String.replaySubjectCreate)"
        } else if subjectKind == String.behaviorSubject {
            if let val = nominal.genericParameterTypes[0].defaultSingularVal(isInitParam: isInitParam, overrides: overrides, overrideKey: overrideKey) {
                underlyingSubjectTypeDefaultVal = "\(underlyingSubjectType)(value: \(val))"
            }
        }
        return (underlyingSubjectType, typeParams, underlyingSubjectTypeDefaultVal)
    }