github.com/aavshr/aws-sdk-go@v1.41.3/internal/ini/newline_token.go (about)

     1  package ini
     2  
     3  func isNewline(b []rune) bool {
     4  	if len(b) == 0 {
     5  		return false
     6  	}
     7  
     8  	if b[0] == '\n' {
     9  		return true
    10  	}
    11  
    12  	if len(b) < 2 {
    13  		return false
    14  	}
    15  
    16  	return b[0] == '\r' && b[1] == '\n'
    17  }
    18  
    19  func newNewlineToken(b []rune) (Token, int, error) {
    20  	i := 1
    21  	if b[0] == '\r' && isNewline(b[1:]) {
    22  		i++
    23  	}
    24  
    25  	if !isNewline([]rune(b[:i])) {
    26  		return emptyToken, 0, NewParseError("invalid new line token")
    27  	}
    28  
    29  	return newToken(TokenNL, b[:i], NoneType), i, nil
    30  }