diff options
Diffstat (limited to 'components/style')
-rw-r--r-- | components/style/logical_geometry.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/components/style/logical_geometry.rs b/components/style/logical_geometry.rs index 94dcd3881db..242a061b0da 100644 --- a/components/style/logical_geometry.rs +++ b/components/style/logical_geometry.rs @@ -213,6 +213,13 @@ impl Debug for DebugWritingMode { } +// Used to specify the logical direction. +#[derive(Debug, Clone, Copy, PartialEq)] +pub enum Direction { + Inline, + Block +} + /// A 2D size in flow-relative dimensions #[derive(PartialEq, Eq, Clone, Copy)] #[cfg_attr(feature = "servo", derive(Serialize))] @@ -764,6 +771,16 @@ impl<T: Copy + Add<T, Output=T>> LogicalMargin<T> { } #[inline] + pub fn start_end(&self, direction: Direction) -> T { + match direction { + Direction::Inline => + self.inline_start + self.inline_end, + Direction::Block => + self.block_start + self.block_end + } + } + + #[inline] pub fn top_bottom(&self, mode: WritingMode) -> T { self.debug_writing_mode.check(mode); if mode.is_vertical() { |