fromString static method

V2RayEntity fromString(
  1. String link
)

Implementation

static V2RayEntity fromString(String link) {
  final index = link.indexOf('://');
  if (index == -1) {
    throw ArgumentError(
      'Invalid share string format. Link must have `{protocol}://` prefix.',
    );
  }

  final protocol = link.substring(0, index);

  return switch (protocol) {
    VlessShareEntity.scheme => VlessShareEntity.fromString(link),
    VMessShareEntity.scheme => VMessShareEntity.fromString(link),
    TrojanShareEntity.scheme => TrojanShareEntity.fromString(link),
    SocksShareEntity.scheme => SocksShareEntity.fromString(link),
    ShadowSocksShareEntity.scheme => ShadowSocksShareEntity.fromString(link),
    HysteriaShareEntity.scheme => HysteriaShareEntity.fromString(link),
    HysteriaShareEntity.scheme2 => HysteriaShareEntity.fromString(link),
    _ => throw ArgumentError('Unsupported protocol $protocol.'),
  };
}