Add helper methods on Visibility (#14898)
Fixes #14825 Edit: After feedback, these are the updated methods: - `toggle_inherited_visible(&mut self)` - Toggles between `Visibility::Inherited` and `Visibility::Visible`. If the value is `Visibility::Hidden`, it remains unaffected. - `toggle_inherited_hidden(&mut self)` - Toggles between `Visibility::Inherited` and `Visibility::Hidden`. If the value is `Visibility::Visible`, it remains unaffected. - `toggle_visible_hidden(&mut self)` - Toggles between `Visibility::Visible` and `Visibility::Hidden`. If the value is `Visibility::Inherited`, it remains unaffected. --------- Co-authored-by: Chris Russell <8494645+chescock@users.noreply.github.com>
This commit is contained in:
parent
cccc1137b4
commit
0070bdccd8
@ -47,6 +47,39 @@ pub enum Visibility {
|
|||||||
Visible,
|
Visible,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
impl Visibility {
|
||||||
|
/// Toggles between `Visibility::Inherited` and `Visibility::Visible`.
|
||||||
|
/// If the value is `Visibility::Hidden`, it remains unaffected.
|
||||||
|
#[inline]
|
||||||
|
pub fn toggle_inherited_visible(&mut self) {
|
||||||
|
*self = match *self {
|
||||||
|
Visibility::Inherited => Visibility::Visible,
|
||||||
|
Visibility::Visible => Visibility::Inherited,
|
||||||
|
_ => *self,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
/// Toggles between `Visibility::Inherited` and `Visibility::Hidden`.
|
||||||
|
/// If the value is `Visibility::Visible`, it remains unaffected.
|
||||||
|
#[inline]
|
||||||
|
pub fn toggle_inherited_hidden(&mut self) {
|
||||||
|
*self = match *self {
|
||||||
|
Visibility::Inherited => Visibility::Hidden,
|
||||||
|
Visibility::Hidden => Visibility::Inherited,
|
||||||
|
_ => *self,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
/// Toggles between `Visibility::Visible` and `Visibility::Hidden`.
|
||||||
|
/// If the value is `Visibility::Inherited`, it remains unaffected.
|
||||||
|
#[inline]
|
||||||
|
pub fn toggle_visible_hidden(&mut self) {
|
||||||
|
*self = match *self {
|
||||||
|
Visibility::Visible => Visibility::Hidden,
|
||||||
|
Visibility::Hidden => Visibility::Visible,
|
||||||
|
_ => *self,
|
||||||
|
};
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Allows `&Visibility == Visibility`
|
// Allows `&Visibility == Visibility`
|
||||||
impl PartialEq<Visibility> for &Visibility {
|
impl PartialEq<Visibility> for &Visibility {
|
||||||
#[inline]
|
#[inline]
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user