Feat: continue refactoring
This commit is contained in:
@@ -1,3 +1,18 @@
|
||||
pub trait CyclicEnum: Sized + Copy + PartialEq + 'static {
|
||||
const VARIANTS: &'static [Self];
|
||||
|
||||
fn next(self) -> Self {
|
||||
let pos = Self::VARIANTS.iter().position(|v| *v == self).unwrap_or(0);
|
||||
Self::VARIANTS[(pos + 1) % Self::VARIANTS.len()]
|
||||
}
|
||||
|
||||
fn prev(self) -> Self {
|
||||
let len = Self::VARIANTS.len();
|
||||
let pos = Self::VARIANTS.iter().position(|v| *v == self).unwrap_or(0);
|
||||
Self::VARIANTS[(pos + len - 1) % len]
|
||||
}
|
||||
}
|
||||
|
||||
pub mod audio;
|
||||
pub mod color_scheme;
|
||||
pub mod editor;
|
||||
@@ -14,10 +29,12 @@ pub mod ui;
|
||||
|
||||
pub use audio::{AudioSettings, DeviceKind, EngineSection, Metrics, SettingKind};
|
||||
pub use color_scheme::ColorScheme;
|
||||
pub use options::{OptionsFocus, OptionsState};
|
||||
pub use editor::{CopiedStepData, CopiedSteps, EditorContext, Focus, PatternField, PatternPropsField, StackCache};
|
||||
pub use editor::{
|
||||
CopiedStepData, CopiedSteps, EditorContext, PatternField, PatternPropsField, StackCache,
|
||||
};
|
||||
pub use live_keys::LiveKeyState;
|
||||
pub use modal::Modal;
|
||||
pub use options::{OptionsFocus, OptionsState};
|
||||
pub use panel::{PanelFocus, PanelState, SidePanel};
|
||||
pub use patterns_nav::{PatternsColumn, PatternsNav};
|
||||
pub use playback::{PlaybackState, StagedChange};
|
||||
|
||||
Reference in New Issue
Block a user