diff options
author | bors-servo <lbergstrom+bors@mozilla.com> | 2016-06-06 02:16:07 -0500 |
---|---|---|
committer | bors-servo <lbergstrom+bors@mozilla.com> | 2016-06-06 02:16:07 -0500 |
commit | 9a4460bed101655e55c18be051ead955a70ea3ce (patch) | |
tree | 7444e3f4d70075ec49180bad7d91ffba38769bbc | |
parent | 1bc94c132e6820293c2178bf95991518b1e8a677 (diff) | |
parent | c2e8916168220666708fd713815156f71ecb1b71 (diff) | |
download | servo-9a4460bed101655e55c18be051ead955a70ea3ce.tar.gz servo-9a4460bed101655e55c18be051ead955a70ea3ce.zip |
Auto merge of #11623 - Ms2ger:str, r=nox
Move some code out of util::str.
<!-- Reviewable:start -->
This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/11623)
<!-- Reviewable:end -->
-rw-r--r-- | components/gfx/font_cache_thread.rs | 25 | ||||
-rw-r--r-- | components/script/dom/bindings/trace.rs | 3 | ||||
-rw-r--r-- | components/script/dom/element.rs | 2 | ||||
-rw-r--r-- | components/script/dom/htmlhrelement.rs | 2 | ||||
-rw-r--r-- | components/script/dom/htmliframeelement.rs | 2 | ||||
-rw-r--r-- | components/script/dom/htmlimageelement.rs | 2 | ||||
-rw-r--r-- | components/script/dom/htmltablecellelement.rs | 2 | ||||
-rw-r--r-- | components/script/dom/htmltableelement.rs | 3 | ||||
-rw-r--r-- | components/style/attr.rs | 11 | ||||
-rw-r--r-- | components/util/str.rs | 31 | ||||
-rw-r--r-- | tests/unit/style/attr.rs | 3 |
11 files changed, 41 insertions, 45 deletions
diff --git a/components/gfx/font_cache_thread.rs b/components/gfx/font_cache_thread.rs index a43490036b9..2a1a1e7764c 100644 --- a/components/gfx/font_cache_thread.rs +++ b/components/gfx/font_cache_thread.rs @@ -17,6 +17,7 @@ use platform::font_template::FontTemplateData; use std::borrow::ToOwned; use std::collections::HashMap; use std::mem; +use std::ops::Deref; use std::sync::{Arc, Mutex}; use std::u32; use string_cache::Atom; @@ -24,7 +25,6 @@ use style::font_face::Source; use style::properties::longhands::font_family::computed_value::FontFamily; use url::Url; use util::prefs; -use util::str::LowercaseString; use util::thread::spawn_named; use webrender_traits; @@ -460,3 +460,26 @@ fn is_supported_font_type(toplevel: &TopLevel, sublevel: &SubLevel) -> bool { _ => false, } } + + +#[derive(Clone, Eq, PartialEq, Hash, Debug, Deserialize, Serialize)] +pub struct LowercaseString { + inner: String, +} + +impl LowercaseString { + pub fn new(s: &str) -> LowercaseString { + LowercaseString { + inner: s.to_lowercase(), + } + } +} + +impl Deref for LowercaseString { + type Target = str; + + #[inline] + fn deref(&self) -> &str { + &*self.inner + } +} diff --git a/components/script/dom/bindings/trace.rs b/components/script/dom/bindings/trace.rs index 8a4913bfe20..f33a8834a08 100644 --- a/components/script/dom/bindings/trace.rs +++ b/components/script/dom/bindings/trace.rs @@ -83,7 +83,7 @@ use std::sync::atomic::{AtomicBool, AtomicUsize}; use std::sync::mpsc::{Receiver, Sender}; use std::time::SystemTime; use string_cache::{Atom, Namespace, QualName}; -use style::attr::{AttrIdentifier, AttrValue}; +use style::attr::{AttrIdentifier, AttrValue, LengthOrPercentageOrAuto}; use style::element_state::*; use style::properties::PropertyDeclarationBlock; use style::restyle_hints::ElementSnapshot; @@ -91,7 +91,6 @@ use style::selector_impl::PseudoElement; use style::values::specified::Length; use url::Origin as UrlOrigin; use url::Url; -use util::str::LengthOrPercentageOrAuto; use uuid::Uuid; use webrender_traits::WebGLError; diff --git a/components/script/dom/element.rs b/components/script/dom/element.rs index bb6b83e32fe..fc4160f1843 100644 --- a/components/script/dom/element.rs +++ b/components/script/dom/element.rs @@ -85,6 +85,7 @@ use std::mem; use std::sync::Arc; use std::sync::atomic::{AtomicUsize, Ordering}; use string_cache::{Atom, BorrowedAtom, BorrowedNamespace, Namespace, QualName}; +use style::attr::LengthOrPercentageOrAuto; use style::element_state::*; use style::parser::ParserContextExtraData; use style::properties::DeclaredValue; @@ -93,7 +94,6 @@ use style::properties::{PropertyDeclaration, PropertyDeclarationBlock, parse_sty use style::selector_impl::{NonTSPseudoClass, ServoSelectorImpl}; use style::values::CSSFloat; use style::values::specified::{self, CSSColor, CSSRGBA, LengthOrPercentage}; -use util::str::LengthOrPercentageOrAuto; // TODO: Update focus state when the top-level browsing context gains or loses system focus, // and when the element enters or leaves a browsing context container. diff --git a/components/script/dom/htmlhrelement.rs b/components/script/dom/htmlhrelement.rs index 7259814fdd9..1041319f907 100644 --- a/components/script/dom/htmlhrelement.rs +++ b/components/script/dom/htmlhrelement.rs @@ -14,7 +14,7 @@ use dom::htmlelement::HTMLElement; use dom::node::Node; use dom::virtualmethods::VirtualMethods; use string_cache::Atom; -use util::str::LengthOrPercentageOrAuto; +use style::attr::LengthOrPercentageOrAuto; #[dom_struct] pub struct HTMLHRElement { diff --git a/components/script/dom/htmliframeelement.rs b/components/script/dom/htmliframeelement.rs index 4c5fb336c69..bc37f526f88 100644 --- a/components/script/dom/htmliframeelement.rs +++ b/components/script/dom/htmliframeelement.rs @@ -42,10 +42,10 @@ use script_traits::IFrameSandboxState::{IFrameSandboxed, IFrameUnsandboxed}; use script_traits::{IFrameLoadInfo, MozBrowserEvent, ScriptMsg as ConstellationMsg}; use std::cell::Cell; use string_cache::Atom; +use style::attr::LengthOrPercentageOrAuto; use style::context::ReflowGoal; use url::Url; use util::prefs::mozbrowser_enabled; -use util::str::LengthOrPercentageOrAuto; #[derive(HeapSizeOf)] enum SandboxAllowance { diff --git a/components/script/dom/htmlimageelement.rs b/components/script/dom/htmlimageelement.rs index 8bd29e7678f..49f771824d3 100644 --- a/components/script/dom/htmlimageelement.rs +++ b/components/script/dom/htmlimageelement.rs @@ -31,8 +31,8 @@ use script_runtime::ScriptThreadEventCategory::UpdateReplacedElement; use script_thread::Runnable; use std::sync::Arc; use string_cache::Atom; +use style::attr::LengthOrPercentageOrAuto; use url::Url; -use util::str::LengthOrPercentageOrAuto; #[derive(JSTraceable, HeapSizeOf)] #[allow(dead_code)] diff --git a/components/script/dom/htmltablecellelement.rs b/components/script/dom/htmltablecellelement.rs index 036771e178a..ae54b915342 100644 --- a/components/script/dom/htmltablecellelement.rs +++ b/components/script/dom/htmltablecellelement.rs @@ -16,7 +16,7 @@ use dom::htmltablerowelement::HTMLTableRowElement; use dom::node::Node; use dom::virtualmethods::VirtualMethods; use string_cache::Atom; -use util::str::LengthOrPercentageOrAuto; +use style::attr::LengthOrPercentageOrAuto; const DEFAULT_COLSPAN: u32 = 1; diff --git a/components/script/dom/htmltableelement.rs b/components/script/dom/htmltableelement.rs index 26a373a3630..a86381967b4 100644 --- a/components/script/dom/htmltableelement.rs +++ b/components/script/dom/htmltableelement.rs @@ -24,8 +24,7 @@ use dom::node::{Node, document_from_node, window_from_node}; use dom::virtualmethods::VirtualMethods; use std::cell::Cell; use string_cache::Atom; -use style::attr::parse_unsigned_integer; -use util::str::LengthOrPercentageOrAuto; +use style::attr::{LengthOrPercentageOrAuto, parse_unsigned_integer}; #[dom_struct] pub struct HTMLTableElement { diff --git a/components/style/attr.rs b/components/style/attr.rs index 8d5777bc34f..42fdbbc853b 100644 --- a/components/style/attr.rs +++ b/components/style/attr.rs @@ -10,13 +10,20 @@ use std::ascii::AsciiExt; use std::str::FromStr; use string_cache::{Atom, Namespace}; use url::Url; -use util::str::{LengthOrPercentageOrAuto, HTML_SPACE_CHARACTERS}; -use util::str::{read_exponent, read_fraction, read_numbers, split_commas, split_html_space_chars}; +use util::str::{HTML_SPACE_CHARACTERS, read_exponent, read_fraction}; +use util::str::{read_numbers, split_commas, split_html_space_chars}; use values::specified::Length; // Duplicated from script::dom::values. const UNSIGNED_LONG_MAX: u32 = 2147483647; +#[derive(Clone, Copy, Debug, HeapSizeOf, PartialEq)] +pub enum LengthOrPercentageOrAuto { + Auto, + Percentage(f32), + Length(Au), +} + #[derive(PartialEq, Clone, HeapSizeOf)] pub enum AttrValue { String(String), diff --git a/components/util/str.rs b/components/util/str.rs index 7df67e1b421..73518625b6e 100644 --- a/components/util/str.rs +++ b/components/util/str.rs @@ -2,11 +2,9 @@ * License, v. 2.0. If a copy of the MPL was not distributed with this * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ -use app_units::Au; use num_traits::ToPrimitive; use std::convert::AsRef; use std::iter::{Filter, Peekable}; -use std::ops::Deref; use std::str::Split; pub type StaticCharVec = &'static [char]; @@ -118,35 +116,6 @@ pub fn read_exponent<I: Iterator<Item=char>>(mut iter: Peekable<I>) -> Option<i3 } } -#[derive(Clone, Copy, Debug, HeapSizeOf, PartialEq)] -pub enum LengthOrPercentageOrAuto { - Auto, - Percentage(f32), - Length(Au), -} - -#[derive(Clone, Eq, PartialEq, Hash, Debug, Deserialize, Serialize)] -pub struct LowercaseString { - inner: String, -} - -impl LowercaseString { - pub fn new(s: &str) -> LowercaseString { - LowercaseString { - inner: s.to_lowercase(), - } - } -} - -impl Deref for LowercaseString { - type Target = str; - - #[inline] - fn deref(&self) -> &str { - &*self.inner - } -} - pub fn str_join<I, T>(strs: I, join: &str) -> String where I: IntoIterator<Item=T>, T: AsRef<str>, { diff --git a/tests/unit/style/attr.rs b/tests/unit/style/attr.rs index 7b642a5db4a..4ae614eae2d 100644 --- a/tests/unit/style/attr.rs +++ b/tests/unit/style/attr.rs @@ -3,8 +3,7 @@ * file, You can obtain one at http://mozilla.org/MPL/2.0/. */ use app_units::Au; -use style::attr::{AttrValue, parse_length}; -use util::str::LengthOrPercentageOrAuto; +use style::attr::{AttrValue, LengthOrPercentageOrAuto, parse_length}; #[test] fn test_parse_double() { |