added the String method to Result type
authorAndré Martins <aanm90@gmail.com>
Sun, 31 Jan 2016 03:18:33 +0000 (03:18 +0000)
committerAndré Martins <aanm90@gmail.com>
Fri, 19 Feb 2016 17:40:46 +0000 (17:40 +0000)
Signed-off-by: André Martins <aanm90@gmail.com>
pkg/types/types.go

index 6ae4a64..6948dcb 100644 (file)
@@ -16,6 +16,7 @@ package types
 
 import (
        "encoding/json"
+       "fmt"
        "net"
        "os"
 )
@@ -75,6 +76,20 @@ func (r *Result) Print() error {
        return prettyPrint(r)
 }
 
+// String returns a formatted string in the form of "[IP4: $1,][ IP6: $2,] DNS: $3" where
+// $1 represents the receiver's IPv4, $2 represents the receiver's IPv6 and $3 the
+// receiver's DNS. If $1 or $2 are nil, they won't be present in the returned string.
+func (r *Result) String() string {
+       var str string
+       if r.IP4 != nil {
+               str = fmt.Sprintf("IP4:%+v, ", *r.IP4)
+       }
+       if r.IP6 != nil {
+               str += fmt.Sprintf("IP6:%+v, ", *r.IP6)
+       }
+       return fmt.Sprintf("%sDNS:%+v", str, r.DNS)
+}
+
 // IPConfig contains values necessary to configure an interface
 type IPConfig struct {
        IP      net.IPNet