pub fn dvorak() -> Box<RewriteLayer> {
    use crate::key_codes::KeyCode::*;
    const MAP: &[(u32, u32)] = &[
        (Q.to_u32(), Quote.to_u32()),
        (W.to_u32(), Comma.to_u32()),
        (E.to_u32(), Dot.to_u32()),
        (R.to_u32(), P.to_u32()),
        (T.to_u32(), Y.to_u32()),
        (Y.to_u32(), F.to_u32()),
        (U.to_u32(), G.to_u32()),
        (I.to_u32(), C.to_u32()),
        (O.to_u32(), R.to_u32()),
        (P.to_u32(), L.to_u32()),
        //(A.to_u32(), (A.to_u32()),
        (S.to_u32(), O.to_u32()),
        (D.to_u32(), E.to_u32()),
        (F.to_u32(), U.to_u32()),
        (G.to_u32(), I.to_u32()),
        (H.to_u32(), D.to_u32()),
        (J.to_u32(), H.to_u32()),
        (K.to_u32(), T.to_u32()),
        (L.to_u32(), N.to_u32()),
        (SColon.to_u32(), S.to_u32()),
        (Quote.to_u32(), Minus.to_u32()),
        (Z.to_u32(), SColon.to_u32()),
        (X.to_u32(), Q.to_u32()),
        (C.to_u32(), J.to_u32()),
        (V.to_u32(), K.to_u32()),
        (B.to_u32(), X.to_u32()),
        (N.to_u32(), B.to_u32()),
        (M.to_u32(), M.to_u32()),
        (Comma.to_u32(), W.to_u32()),
        (Dot.to_u32(), V.to_u32()),
        (Slash.to_u32(), Z.to_u32()),
        //(BSlash.to_u32(), Bslash.to_u32()),
        (Equal.to_u32(), RBracket.to_u32()),
        (Quote.to_u32(), Minus.to_u32()),
        (RBracket.to_u32(), Equal.to_u32()),
        //(Grave.to_u32(), (Grave.to_u32()),
        (Minus.to_u32(), LBracket.to_u32()),
        (LBracket.to_u32(), Slash.to_u32()),
    ];
    Box::new(RewriteLayer::new(MAP))
}
/// A layer that maps qwerty to dvorak.
/// Don't forget to enable it, layers are off by default
A layer that maps qwerty to dvorak.
Don't forget to enable it, layers are off by default
A layer that maps qwerty to dvorak . Don ' t forget to enable it layers are off by default
pub fn dvorak() -> Box<RewriteLayer> {
    use crate::key_codes::KeyCode::*;
    const MAP: &[(u32, u32)] = &[
        (Q.to_u32(), Quote.to_u32()),
        (W.to_u32(), Comma.to_u32()),
        (E.to_u32(), Dot.to_u32()),
        (R.to_u32(), P.to_u32()),
        (T.to_u32(), Y.to_u32()),
        (Y.to_u32(), F.to_u32()),
        (U.to_u32(), G.to_u32()),
        (I.to_u32(), C.to_u32()),
        (O.to_u32(), R.to_u32()),
        (P.to_u32(), L.to_u32()),
        //(A.to_u32(), (A.to_u32()),
        (S.to_u32(), O.to_u32()),
        (D.to_u32(), E.to_u32()),
        (F.to_u32(), U.to_u32()),
        (G.to_u32(), I.to_u32()),
        (H.to_u32(), D.to_u32()),
        (J.to_u32(), H.to_u32()),
        (K.to_u32(), T.to_u32()),
        (L.to_u32(), N.to_u32()),
        (SColon.to_u32(), S.to_u32()),
        (Quote.to_u32(), Minus.to_u32()),
        (Z.to_u32(), SColon.to_u32()),
        (X.to_u32(), Q.to_u32()),
        (C.to_u32(), J.to_u32()),
        (V.to_u32(), K.to_u32()),
        (B.to_u32(), X.to_u32()),
        (N.to_u32(), B.to_u32()),
        (M.to_u32(), M.to_u32()),
        (Comma.to_u32(), W.to_u32()),
        (Dot.to_u32(), V.to_u32()),
        (Slash.to_u32(), Z.to_u32()),
        //(BSlash.to_u32(), Bslash.to_u32()),
        (Equal.to_u32(), RBracket.to_u32()),
        (Quote.to_u32(), Minus.to_u32()),
        (RBracket.to_u32(), Equal.to_u32()),
        //(Grave.to_u32(), (Grave.to_u32()),
        (Minus.to_u32(), LBracket.to_u32()),
        (LBracket.to_u32(), Slash.to_u32()),
    ];
    Box::new(RewriteLayer::new(MAP))
}
pub fn dvorak ( ) -> Box < RewriteLayer > { use crate :: key_codes :: KeyCode :: * ; const MAP : & [ ( u32 , u32 ) ] = & [ ( Q . to_u32 ( ) , Quote . to_u32 ( ) ) , ( W . to_u32 ( ) , Comma . to_u32 ( ) ) , ( E . to_u32 ( ) , Dot . to_u32 ( ) ) , ( R . to_u32 ( ) , P . to_u32 ( ) ) , ( T . to_u32 ( ) , Y . to_u32 ( ) ) , ( Y . to_u32 ( ) , F . to_u32 ( ) ) , ( U . to_u32 ( ) , G . to_u32 ( ) ) , ( I . to_u32 ( ) , C . to_u32 ( ) ) , ( O . to_u32 ( ) , R . to_u32 ( ) ) , ( P . to_u32 ( ) , L . to_u32 ( ) ) , //(A.to_u32(), (A.to_u32()), ( S . to_u32 ( ) , O . to_u32 ( ) ) , ( D . to_u32 ( ) , E . to_u32 ( ) ) , ( F . to_u32 ( ) , U . to_u32 ( ) ) , ( G . to_u32 ( ) , I . to_u32 ( ) ) , ( H . to_u32 ( ) , D . to_u32 ( ) ) , ( J . to_u32 ( ) , H . to_u32 ( ) ) , ( K . to_u32 ( ) , T . to_u32 ( ) ) , ( L . to_u32 ( ) , N . to_u32 ( ) ) , ( SColon . to_u32 ( ) , S . to_u32 ( ) ) , ( Quote . to_u32 ( ) , Minus . to_u32 ( ) ) , ( Z . to_u32 ( ) , SColon . to_u32 ( ) ) , ( X . to_u32 ( ) , Q . to_u32 ( ) ) , ( C . to_u32 ( ) , J . to_u32 ( ) ) , ( V . to_u32 ( ) , K . to_u32 ( ) ) , ( B . to_u32 ( ) , X . to_u32 ( ) ) , ( N . to_u32 ( ) , B . to_u32 ( ) ) , ( M . to_u32 ( ) , M . to_u32 ( ) ) , ( Comma . to_u32 ( ) , W . to_u32 ( ) ) , ( Dot . to_u32 ( ) , V . to_u32 ( ) ) , ( Slash . to_u32 ( ) , Z . to_u32 ( ) ) , //(BSlash.to_u32(), Bslash.to_u32()), ( Equal . to_u32 ( ) , RBracket . to_u32 ( ) ) , ( Quote . to_u32 ( ) , Minus . to_u32 ( ) ) , ( RBracket . to_u32 ( ) , Equal . to_u32 ( ) ) , //(Grave.to_u32(), (Grave.to_u32()), ( Minus . to_u32 ( ) , LBracket . to_u32 ( ) ) , ( LBracket . to_u32 ( ) , Slash . to_u32 ( ) ) , ] ; Box :: new ( RewriteLayer :: new ( MAP ) ) }
A layer that maps qwerty to dvorak.
A layer that maps qwerty to dvorak .