//GLOBAL enum ModeType { rule, global, direct, } enum LogLevel { silent, error, warning, info, debug, } enum ProcessMode { always, strict, off } enum Fingerprint{ chrome, firefox, safari, iOS, android, edge, random } class BasicConfig { final int mixedPort; final bool allowLan; final String bindAddress; final String mode; final String logLevel; final String externalController; final bool unifiedDelay; final bool geodataMode; final bool tcpConcurrent; final String findProcessMode; final String globalClientFingerprint; BasicConfig({ required this.mixedPort, required this.allowLan, required this.bindAddress, required this.mode, required this.logLevel, required this.externalController, required this.unifiedDelay, required this.geodataMode, required this.tcpConcurrent, required this.findProcessMode, required this.globalClientFingerprint, }); // 可以添加一个方法来从Map或JSON解析创建BasicConfig实例 factory BasicConfig.fromMap(Map map) { return BasicConfig( mixedPort: map['mixed-port'], allowLan: map['allow-lan'], bindAddress: map['bind-address'], mode: map['mode'], logLevel: map['log-level'], externalController: map['external-controller'], unifiedDelay: map['unified-delay'], geodataMode: map['geodata-mode'], tcpConcurrent: map['tcp-concurrent'], findProcessMode: map['find-process-mode'], globalClientFingerprint: map['global-client-fingerprint'], ); } Map toJson() { return { 'mixed-port': mixedPort, 'allow-lan': allowLan, 'bind-address': bindAddress, 'mode': mode, 'log-level': logLevel, 'external-controller': externalController, 'unified-delay': unifiedDelay, 'geodata-mode': geodataMode, 'tcp-concurrent': tcpConcurrent, 'find-process-mode': findProcessMode, 'global-client-fingerprint': globalClientFingerprint, }; } String toYaml() { return ''' mixed-port: $mixedPort allow-lan: $allowLan bind-address: '$bindAddress' mode: $mode log-level: $logLevel external-controller: '$externalController' unified-delay: $unifiedDelay geodata-mode: $geodataMode tcp-concurrent: $tcpConcurrent find-process-mode: $findProcessMode global-client-fingerprint: $globalClientFingerprint '''; } }