// Copyright 2010 The Go Authors. All rights reserved. // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. package mime import ( "strings" ) // isTSpecial reports whether rune is in 'tspecials' as defined by RFC // 1521 and RFC 2045. func isTSpecial(r rune) bool { return strings.ContainsRune(`()<>@,;:\"/[]?=`, r) } // isTokenChar reports whether rune is in 'token' as defined by RFC // 1521 and RFC 2045. func isTokenChar(r rune) bool { // token := 1*<any (US-ASCII) CHAR except SPACE, CTLs, // or tspecials> return r > 0x20 && r < 0x7f && !isTSpecial(r) } // isToken reports whether s is a 'token' as defined by RFC 1521 // and RFC 2045. func isToken(s string) bool { if s == "" { return false } return strings.IndexFunc(s, isNotTokenChar) < 0 }