diff options
Diffstat (limited to 'src/components/main/css/select.rs')
-rw-r--r-- | src/components/main/css/select.rs | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/src/components/main/css/select.rs b/src/components/main/css/select.rs index af183503e67..eadfee5688c 100644 --- a/src/components/main/css/select.rs +++ b/src/components/main/css/select.rs @@ -30,14 +30,24 @@ fn default_url(name: &str) -> Url { FromStr::from_str(fmt!("http://%s", name)).unwrap() } -fn style_stream(style: &str) -> DataStream { +fn style_stream(style: &str) -> @mut DataStream { let style = Cell::new(style.as_bytes().to_owned()); - let d: DataStream = || if !style.is_empty() { - Some(style.take()) - } else { - None + struct StyleDataStream { + style: Cell<~[u8]>, + } + impl DataStream for StyleDataStream { + fn read(&mut self) -> Option<~[u8]> { + if !self.style.is_empty() { + Some(self.style.take()) + } else { + None + } + } + } + let stream = @mut StyleDataStream { + style: style, }; - return d; + stream as @mut DataStream } fn html4_default_style_str() -> &'static str { |