Skip to content

Additive feature flags #27

@joshka

Description

@joshka

I noticed when taking a look at the source that this doesn't build when both termion and crossterm features are enabled. It would probably be nice for development to make this possible. In general, it's worth making features additive where you can.

cargo check --all-features

    Checking keymap v1.0.0-rc.2 (/Users/joshka/local/keymap-rs)
error[E0252]: the name `parse` is defined multiple times
  --> src/backend/mod.rs:12:9
   |
6  | pub use self::crossterm::parse;
   |         ---------------------- previous import of the value `parse` here
...
12 | pub use self::termion::parse;
   |         ^^^^^^^^^^^^^^^^^^^^ `parse` reimported here
   |
   = note: `parse` must be defined only once in the value namespace of this module
help: you can use `as` to change the binding name of the import
   |
12 | pub use self::termion::parse as other_parse;
   |                              ++++++++++++++

warning: unused import: `self::termion::parse`
  --> src/backend/mod.rs:12:9
   |
12 | pub use self::termion::parse;
   |         ^^^^^^^^^^^^^^^^^^^^
   |
   = note: `#[warn(unused_imports)]` on by default

error[E0119]: conflicting implementations of trait `Deserialize<'_>` for type `KeyMap`
   --> src/backend/termion.rs:123:1
    |
123 | impl<'s> Deserialize<'s> for KeyMap {
    | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ conflicting implementation for `KeyMap`
    |
   ::: src/backend/crossterm.rs:152:1
    |
152 | impl<'s> Deserialize<'s> for KeyMap {
    | ----------------------------------- first implementation here

error[E0592]: duplicate definitions with name `get`
  --> src/backend/crossterm.rs:46:5
   |
46 |     pub fn get(&self, key: &KeyEvent) -> Option<&T> {
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `get`
   |
  ::: src/backend/termion.rs:31:5
   |
31 |     pub fn get(&self, key: &KeyEvent) -> Option<&T> {
   |     ----------------------------------------------- other definition for `get`

error[E0592]: duplicate definitions with name `get_item`
  --> src/backend/crossterm.rs:59:5
   |
59 |     pub fn get_item(&self, key: &KeyEvent) -> Option<(&T, &Item)> {
   |     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ duplicate definitions for `get_item`
   |
  ::: src/backend/termion.rs:35:5
   |
35 |     pub fn get_item(&self, key: &KeyEvent) -> Option<(&T, &Item)> {
   |     ------------------------------------------------------------- other definition for `get_item`

Some errors have detailed explanations: E0119, E0252, E0592.
For more information about an error, try `rustc --explain E0119`.
warning: `keymap` (lib) generated 1 warning
error: could not compile `keymap` (lib) due to 4 previous errors; 1 warning emitted

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions