123456789101112131415161718192021222324252627282930313233343536373839404142434445(*
* mode.ml
* -----------
* Copyright : (c) 2019 - 2020, ZAN DoYe <zandoye@gmail.com>
* Licence : MIT
*
* This file is a part of mew.
*)moduletypeName=sigtypetvalcompare:t->t->intendmoduleMake(Key:Key.S)(Name:Name)=structmoduleKeyTrie=Trie.Make(Key)typename=Name.ttypeaction=|Switchofname|KeyofKey.t|KeySeqofKey.tQueue.t|Customof(unit->unit)typet={name:name;timeout:floatoption;bindings:actionKeyTrie.node;}moduleModes=Map.Make(Name)typemodes=tModes.tletnamem=m.namelettimeoutm=m.timeoutletbindingsm=m.bindingsletcomparem1m2=comparem1.namem2.nameletdefault_modemodes=Modes.bindingsmodes|>List.hdletbindmodekeyseqaction=KeyTrie.setmode.bindingskeyseqactionletunbindmodekeyseq=KeyTrie.unsetmode.bindingskeyseqend