github.com/go-email-validator/go-email-validator@v0.0.0-20230409163946-b8b9e6a0552e/pkg/presentation/as-email-verifier/reachable.go (about) 1 package asemailverifier 2 3 // Reachable is a type 4 type Reachable string 5 6 func (a Reachable) String() string { 7 return string(a) 8 } 9 10 // Reachable constants 11 const ( 12 ReachableYes Reachable = "yes" 13 ReachableNo Reachable = "no" 14 ReachableUnknown Reachable = "unknown" 15 ) 16 17 // FuncReachable is an interface to calculate Reachable 18 type FuncReachable func(depPresentation DepPresentation) Reachable 19 20 // CalculateReachable returns Reachable status 21 func CalculateReachable(depPresentation DepPresentation) Reachable { 22 smtp := depPresentation.SMTP 23 24 if smtp == nil { 25 return ReachableUnknown 26 } 27 28 if smtp.Deliverable { 29 return ReachableYes 30 } 31 if smtp.CatchAll { 32 return ReachableUnknown 33 } 34 return ReachableNo 35 }