github.com/tooploox/oya@v0.0.21-0.20230524103240-1cda1861aad6/pkg/template/delimiters.go (about)

     1  package template
     2  
     3  import(
     4  	"fmt"
     5  	"strings"
     6  )
     7  
     8  type Delimiters struct {
     9  	Start string
    10  	End   string
    11  }
    12  
    13  type invalidDelimitersFormat struct {
    14  	Delimiters string
    15  }
    16  
    17  func (e *invalidDelimitersFormat) Error() string {
    18  	return fmt.Sprintf("Invalid template delimiters \"%v\". Use 2 chars, seperate with 3 dots. for ex: \"{{...}}\"", e.Delimiters)
    19  }
    20  
    21  func ParseDelimiters(s string) (Delimiters, error) {
    22  	arr := strings.Split(s, "...")
    23  	if len(arr) != 2 {
    24  		return Delimiters{}, &invalidDelimitersFormat{s}
    25  	}
    26  	return Delimiters{arr[0], arr[1]}, nil
    27  }