mirror of
https://github.com/servo/servo.git
synced 2025-10-15 16:00:28 +01:00
I want to do this so that I can get rid of Either<>. The reasons for getting rid of either are multiple: * It doesn't generate as nice C++ code using cbindgen. * It isn't that nice to use either from Rust. * cbindgen has bugs with zero-sized types. I started using this for ColorOrAuto and a few others, for now. Differential Revision: https://phabricator.services.mozilla.com/D19844
43 lines
958 B
Rust
43 lines
958 B
Rust
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
|
|
|
|
//! Generic types for the column properties.
|
|
|
|
/// A generic type for `column-count` values.
|
|
#[derive(
|
|
Animate,
|
|
Clone,
|
|
ComputeSquaredDistance,
|
|
Copy,
|
|
Debug,
|
|
MallocSizeOf,
|
|
Parse,
|
|
PartialEq,
|
|
SpecifiedValueInfo,
|
|
ToAnimatedValue,
|
|
ToAnimatedZero,
|
|
ToComputedValue,
|
|
ToCss,
|
|
)]
|
|
pub enum ColumnCount<PositiveInteger> {
|
|
/// A positive integer.
|
|
Integer(PositiveInteger),
|
|
/// The keyword `auto`.
|
|
#[animation(error)]
|
|
Auto,
|
|
}
|
|
|
|
impl<I> ColumnCount<I> {
|
|
/// Returns `auto`.
|
|
#[inline]
|
|
pub fn auto() -> Self {
|
|
ColumnCount::Auto
|
|
}
|
|
|
|
/// Returns whether this value is `auto`.
|
|
#[inline]
|
|
pub fn is_auto(self) -> bool {
|
|
matches!(self, ColumnCount::Auto)
|
|
}
|
|
}
|