github.com/go-email-validator/go-email-validator@v0.0.0-20230409163946-b8b9e6a0552e/pkg/presentation/prompt-email-verification-api/email.go (about)

     1  package promptemailverificationapi
     2  
     3  import (
     4  	"github.com/go-email-validator/go-email-validator/pkg/ev/evmail"
     5  	"github.com/go-email-validator/go-email-validator/pkg/presentation/converter"
     6  	"strings"
     7  )
     8  
     9  var emptyString = ""
    10  
    11  // EmailFromString creates evmail.Address from string
    12  func EmailFromString(email string) evmail.Address {
    13  	firstPos := strings.IndexByte(email, '@')
    14  	lastPos := strings.LastIndexByte(email, '@')
    15  
    16  	if firstPos == -1 || len(email) < 3 || firstPos != lastPos {
    17  		return converter.NewEmailAddress("", "", &emptyString)
    18  	}
    19  
    20  	return converter.NewEmailAddress(email[:firstPos], email[firstPos+1:], nil)
    21  }