You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: token_string.go
    path of file: ./repos/goldfish/vendor/github.com/denisenkom/go-mssqldb
    
    the code of the file until where you have to start completion: // Code generated by "stringer -type token"; DO NOT EDIT

package mssql

import "fmt"

const (
	_token_name_0 = "tokenReturnStatus"
	_token_name_1 = "tokenColMetadata"
	_token_name_2 = "tokenOrdertokenErrortokenInfo"
	_token_name_3 = "tokenLoginAck"
	_token_name_4 = "tokenRowtokenNbcRow"
	_token_name_5 = "tokenEnvChange"
	_token_name_6 = "tokenSSPI"
	_token_name_7 = "tokenDonetokenDoneProctokenDoneInProc"
)

var (
	_token_index_0 = [...]uint8{0, 17}
	_token_index_
    
func (i token) String() string {
	switch {
	case i == 121:
		return _token_name_0
	case i == 129:
		return _token_name_1
	case 169 <= i && i <= 171:
		i -= 169
		return _token_name_2[_token_index_2[i]:_token_index_2[i+1]]
	case i == 173:
		return _token_name_3
	case 209 <= i && i <= 210:
		i -= 209
		return _token_name_4[_token_index_4[i]:_token_index_4[i+1]]
	case i == 227:
		return _token_name_5
	case i == 237:
		return _token_name_6
	case 253 <= i && i <= 255:
		i -= 253
		return _token_name_7[_token_index_7[i]:_token_index_7[i+1]]
	default:
		return fmt.Sprintf("token(%d)", i)
	}
}