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: keys.go
    path of file: ./repos/ebiten
    
    the code of the file until where you have to start completion: // Copyright 2013 The Ebitengine Authors
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
//     http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.

// Code generated by genkeys.go using 'go generate'. DO NOT EDIT.

package ebiten

import (
	"fmt"
	"strings"

	"github.com/hajimehoshi/ebiten/v2/internal/ui"
)

// A Key represents a keyboard key.
// These keys represent physical keys of US keyboard.
// For example, KeyQ represents Q key on US keyboards and ' (quote) key on Dvorak keyboards.
type Key int

// Keys.
const (
	KeyA              Key = Key(ui.KeyA)
	KeyB              Key = Key(ui.KeyB)
	KeyC              Key = Key(ui.KeyC)
	KeyD              Key = Key(ui.KeyD)
	KeyE              Key = Key(ui.KeyE)
	KeyF              Key = Key(ui.KeyF)
	KeyG              Key = Key(ui.KeyG)
	KeyH              Key = Key(ui.KeyH)
	KeyI              Key = Key(ui.KeyI)
	KeyJ              Key = Key(ui.KeyJ)
	KeyK              Key = Key(ui.KeyK)
	KeyL              Key = Key(ui.KeyL)
	KeyM              Key = Key(ui.KeyM)
	KeyN              Key = Key(ui.KeyN)
	KeyO              Key = Key(ui.KeyO)
	KeyP              Key = Key(ui.KeyP)
	KeyQ              Key = Key(ui.KeyQ)
	KeyR              Key = Key(ui.KeyR)
	KeyS              Key = Key(ui.KeyS)
	KeyT              Key = Key(ui.KeyT)
	KeyU              Key = Key(ui.KeyU)
	KeyV              Key = Key(ui.KeyV)
	KeyW              Key = Key(ui.KeyW)
	KeyX              Key = Key(ui.KeyX)
	KeyY              Key = Key(ui.KeyY)
	KeyZ              Key = Key(ui.KeyZ)
	KeyAltLeft   
    
func keyNameToKeyCode(name string) (Key, bool) {
	switch strings.ToLower(name) {
	case "0":
		return Key0, true
	case "1":
		return Key1, true
	case "2":
		return Key2, true
	case "3":
		return Key3, true
	case "4":
		return Key4, true
	case "5":
		return Key5, true
	case "6":
		return Key6, true
	case "7":
		return Key7, true
	case "8":
		return Key8, true
	case "9":
		return Key9, true
	case "a":
		return KeyA, true
	case "b":
		return KeyB, true
	case "c":
		return KeyC, true
	case "d":
		return KeyD, true
	case "e":
		return KeyE, true
	case "f":
		return KeyF, true
	case "g":
		return KeyG, true
	case "h":
		return KeyH, true
	case "i":
		return KeyI, true
	case "j":
		return KeyJ, true
	case "k":
		return KeyK, true
	case "l":
		return KeyL, true
	case "m":
		return KeyM, true
	case "n":
		return KeyN, true
	case "o":
		return KeyO, true
	case "p":
		return KeyP, true
	case "q":
		return KeyQ, true
	case "r":
		return KeyR, true
	case "s":
		return KeyS, true
	case "t":
		return KeyT, true
	case "u":
		return KeyU, true
	case "v":
		return KeyV, true
	case "w":
		return KeyW, true
	case "x":
		return KeyX, true
	case "y":
		return KeyY, true
	case "z":
		return KeyZ, true
	case "alt":
		return KeyAlt, true
	case "altleft":
		return KeyAltLeft, true
	case "altright":
		return KeyAltRight, true
	case "apostrophe":
		return KeyApostrophe, true
	case "arrowdown":
		return KeyArrowDown, true
	case "arrowleft":
		return KeyArrowLeft, true
	case "arrowright":
		return KeyArrowRight, true
	case "arrowup":
		return KeyArrowUp, true
	case "backquote":
		return KeyBackquote, true
	case "backslash":
		return KeyBackslash, true
	case "backspace":
		return KeyBackspace, true
	case "bracketleft":
		return KeyBracketLeft, true
	case "bracketright":
		return KeyBracketRight, true
	case "capslock":
		return KeyCapsLock, true
	case "comma":
		return KeyComma, true
	case "contextmenu":
		return KeyContextMenu, true
	case "control":
		return KeyControl, true
	case "controlleft":
		return KeyControlLeft, true
	case "controlright":
		return KeyControlRight, true
	case "delete":
		return KeyDelete, true
	case "digit0":
		return KeyDigit0, true
	case "digit1":
		return KeyDigit1, true
	case "digit2":
		return KeyDigit2, true
	case "digit3":
		return KeyDigit3, true
	case "digit4":
		return KeyDigit4, true
	case "digit5":
		return KeyDigit5, true
	case "digit6":
		return KeyDigit6, true
	case "digit7":
		return KeyDigit7, true
	case "digit8":
		return KeyDigit8, true
	case "digit9":
		return KeyDigit9, true
	case "down":
		return KeyDown, true
	case "end":
		return KeyEnd, true
	case "enter":
		return KeyEnter, true
	case "equal":
		return KeyEqual, true
	case "escape":
		return KeyEscape, true
	case "f1":
		return KeyF1, true
	case "f2":
		return KeyF2, true
	case "f3":
		return KeyF3, true
	case "f4":
		return KeyF4, true
	case "f5":
		return KeyF5, true
	case "f6":
		return KeyF6, true
	case "f7":
		return KeyF7, true
	case "f8":
		return KeyF8, true
	case "f9":
		return KeyF9, true
	case "f10":
		return KeyF10, true
	case "f11":
		return KeyF11, true
	case "f12":
		return KeyF12, true
	case "f13":
		return KeyF13, true
	case "f14":
		return KeyF14, true
	case "f15":
		return KeyF15, true
	case "f16":
		return KeyF16, true
	case "f17":
		return KeyF17, true
	case "f18":
		return KeyF18, true
	case "f19":
		return KeyF19, true
	case "f20":
		return KeyF20, true
	case "f21":
		return KeyF21, true
	case "f22":
		return KeyF22, true
	case "f23":
		return KeyF23, true
	case "f24":
		return KeyF24, true
	case "graveaccent":
		return KeyGraveAccent, true
	case "home":
		return KeyHome, true
	case "insert":
		return KeyInsert, true
	case "kp0":
		return KeyKP0, true
	case "kp1":
		return KeyKP1, true
	case "kp2":
		return KeyKP2, true
	case "kp3":
		return KeyKP3, true
	case "kp4":
		return KeyKP4, true
	case "kp5":
		return KeyKP5, true
	case "kp6":
		return KeyKP6, true
	case "kp7":
		return KeyKP7, true
	case "kp8":
		return KeyKP8, true
	case "kp9":
		return KeyKP9, true
	case "kpadd":
		return KeyKPAdd, true
	case "kpdecimal":
		return KeyKPDecimal, true
	case "kpdivide":
		return KeyKPDivide, true
	case "kpenter":
		return KeyKPEnter, true
	case "kpequal":
		return KeyKPEqual, true
	case "kpmultiply":
		return KeyKPMultiply, true
	case "kpsubtract":
		return KeyKPSubtract, true
	case "left":
		return KeyLeft, true
	case "leftbracket":
		return KeyLeftBracket, true
	case "menu":
		return KeyMenu, true
	case "meta":
		return KeyMeta, true
	case "metaleft":
		return KeyMetaLeft, true
	case "metaright":
		return KeyMetaRight, true
	case "minus":
		return KeyMinus, true
	case "numlock":
		return KeyNumLock, true
	case "numpad0":
		return KeyNumpad0, true
	case "numpad1":
		return KeyNumpad1, true
	case "numpad2":
		return KeyNumpad2, true
	case "numpad3":
		return KeyNumpad3, true
	case "numpad4":
		return KeyNumpad4, true
	case "numpad5":
		return KeyNumpad5, true
	case "numpad6":
		return KeyNumpad6, true
	case "numpad7":
		return KeyNumpad7, true
	case "numpad8":
		return KeyNumpad8, true
	case "numpad9":
		return KeyNumpad9, true
	case "numpadadd":
		return KeyNumpadAdd, true
	case "numpaddecimal":
		return KeyNumpadDecimal, true
	case "numpaddivide":
		return KeyNumpadDivide, true
	case "numpadenter":
		return KeyNumpadEnter, true
	case "numpadequal":
		return KeyNumpadEqual, true
	case "numpadmultiply":
		return KeyNumpadMultiply, true
	case "numpadsubtract":
		return KeyNumpadSubtract, true
	case "pagedown":
		return KeyPageDown, true
	case "pageup":
		return KeyPageUp, true
	case "pause":
		return KeyPause, true
	case "period":
		return KeyPeriod, true
	case "printscreen":
		return KeyPrintScreen, true
	case "quote":
		return KeyQuote, true
	case "right":
		return KeyRight, true
	case "rightbracket":
		return KeyRightBracket, true
	case "scrolllock":
		return KeyScrollLock, true
	case "semicolon":
		return KeySemicolon, true
	case "shift":
		return KeyShift, true
	case "shiftleft":
		return KeyShiftLeft, true
	case "shiftright":
		return KeyShiftRight, true
	case "slash":
		return KeySlash, true
	case "space":
		return KeySpace, true
	case "tab":
		return KeyTab, true
	case "up":
		return KeyUp, true
	}
	return 0, false
}