blob: f62be79db85102e44596922276b0fb1d5c801feb [file] [log] [blame]
// Copyright 2019 The Fuchsia Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
/// Standard [qwerty] keymap.
///
/// The value of this array at index `u`, where `u` is the usage, can be:
///
/// * `None` if the key maps to no `char` (Esc key)
/// * `Some((c, None))` if the key maps to `c`, but does not map to any `char` when shift is pressed
/// * `Some((c, Some(cs)))` if the key maps to `c` when shift is not pressed and to `cs` when it is
/// pressed
///
/// [qwerty]: https://en.wikipedia.org/wiki/Keyboard_layout#QWERTY-based_Latin-script_keyboard_layouts
pub const QWERTY_MAP: &[Option<(char, Option<char>)>] = &[
// 0x00
None,
None,
None,
None,
// 0x04
Some(('a', Some('A'))),
Some(('b', Some('B'))),
Some(('c', Some('C'))),
Some(('d', Some('D'))),
// 0x08
Some(('e', Some('E'))),
Some(('f', Some('F'))),
Some(('g', Some('G'))),
Some(('h', Some('H'))),
// 0x0c
Some(('i', Some('I'))),
Some(('j', Some('J'))),
Some(('k', Some('K'))),
Some(('l', Some('L'))),
// 0x10
Some(('m', Some('M'))),
Some(('n', Some('N'))),
Some(('o', Some('O'))),
Some(('p', Some('P'))),
// 0x14
Some(('q', Some('Q'))),
Some(('r', Some('R'))),
Some(('s', Some('S'))),
Some(('t', Some('T'))),
// 0x18
Some(('u', Some('U'))),
Some(('v', Some('V'))),
Some(('w', Some('W'))),
Some(('x', Some('X'))),
// 0x1c
Some(('y', Some('Y'))),
Some(('z', Some('Z'))),
Some(('1', Some('!'))),
Some(('2', Some('@'))),
// 0x20
Some(('3', Some('#'))),
Some(('4', Some('$'))),
Some(('5', Some('%'))),
Some(('6', Some('^'))),
// 0x24
Some(('7', Some('&'))),
Some(('8', Some('*'))),
Some(('9', Some('('))),
Some(('0', Some(')'))),
// 0x28
None,
None,
None,
None,
// 0x2c
Some((' ', Some(' '))),
Some(('-', Some('_'))),
Some(('=', Some('+'))),
Some(('[', Some('{'))),
// 0x30
Some((']', Some('}'))),
Some(('\\', Some('|'))),
None,
Some((';', Some(':'))),
// 0x34
Some(('\'', Some('"'))),
Some(('`', Some('~'))),
Some((',', Some('<'))),
Some(('.', Some('>'))),
// 0x38
Some(('/', Some('?'))),
None,
None,
None,
// 0x3c
None,
None,
None,
None,
// 0x40
None,
None,
None,
None,
// 0x44
None,
None,
None,
None,
// 0x48
None,
None,
None,
None,
// 0x4c
None,
None,
None,
None,
// 0x50
None,
None,
None,
None,
// 0x54
Some(('/', None)),
Some(('*', None)),
Some(('-', None)),
Some(('+', None)),
// 0x58
None,
Some(('1', None)),
Some(('2', None)),
Some(('3', None)),
// 0x5c
Some(('4', None)),
Some(('5', None)),
Some(('6', None)),
Some(('7', None)),
// 0x60
Some(('8', None)),
Some(('9', None)),
Some(('0', None)),
Some(('.', None)),
];