summaryrefslogtreecommitdiff
path: root/types/net_type.go
diff options
context:
space:
mode:
authorKeuin <[email protected]>2023-07-11 22:56:07 +0800
committerKeuin <[email protected]>2023-07-11 22:56:07 +0800
commitf5c63cde56eb35c0125a0545f084441cdd4340ab (patch)
treecf24779daaa3067902bef91d21bcdee7a78fd059 /types/net_type.go
parent7fd817f6d1ead3de85294c1893a6e1572a1d12e3 (diff)
Refactor: move data structures to a separate package to avoid circular dependency.
Diffstat (limited to 'types/net_type.go')
-rw-r--r--types/net_type.go28
1 files changed, 28 insertions, 0 deletions
diff --git a/types/net_type.go b/types/net_type.go
new file mode 100644
index 0000000..ce82288
--- /dev/null
+++ b/types/net_type.go
@@ -0,0 +1,28 @@
+package types
+
+import "fmt"
+
+type IpNetType string
+
+var (
+ IPv6Net IpNetType = "ipv6"
+ IPv4Net IpNetType = "ipv4"
+ IP64 IpNetType = "any"
+)
+
+// GetDialNetString returns the string accepted by net.Dialer::DialContext
+func (t IpNetType) GetDialNetString() string {
+ switch t {
+ case IPv4Net:
+ return "tcp4"
+ case IPv6Net:
+ return "tcp6"
+ case IP64:
+ return "tcp"
+ }
+ return ""
+}
+
+func (t IpNetType) String() string {
+ return fmt.Sprintf("%s(%s)", string(t), t.GetDialNetString())
+}