diff options
| author | Phil Schaf | 2015-11-14 22:18:42 +0100 | 
|---|---|---|
| committer | Phil Schaf | 2015-11-14 22:18:42 +0100 | 
| commit | d3c3b98b43713a66111994c81bbf5c12776ad39f (patch) | |
| tree | eac418164c744726c3b9aa70901626e1e1439ee8 /src/document_tree/elements.rs | |
| parent | 7638986b092e4276ecf25e49633618c5f5a9c4af (diff) | |
| download | rust-rst-d3c3b98b43713a66111994c81bbf5c12776ad39f.tar.bz2 | |
added mutable interfaces
Diffstat (limited to 'src/document_tree/elements.rs')
| -rw-r--r-- | src/document_tree/elements.rs | 35 | 
1 files changed, 22 insertions, 13 deletions
| diff --git a/src/document_tree/elements.rs b/src/document_tree/elements.rs index 2cfd3d4..f1a9b43 100644 --- a/src/document_tree/elements.rs +++ b/src/document_tree/elements.rs @@ -9,19 +9,23 @@ use super::element_categories::*;  //-----------------\\  pub trait Element { -	fn ids(&self)     -> &Vec<String>; -	fn names(&self)   -> &Vec<String>; -	fn source(&self)  -> &Option<Url>; -	fn classes(&self) -> &Vec<String>; +	fn     ids    (&    self) -> &    Vec<String>; +	fn     ids_mut(&mut self) -> &mut Vec<String>; +	fn   names    (&    self) -> &    Vec<String>; +	fn   names_mut(&mut self) -> &mut Vec<String>; +	fn  source    (&    self) -> &    Option<Url>; +	fn  source_mut(&mut self) -> &mut Option<Url>; +	fn classes    (&    self) -> &    Vec<String>; +	fn classes_mut(&mut self) -> &mut Vec<String>;  }  #[derive(Default,Debug)]  pub struct CommonAttributes { -	ids: Vec<String>, -	names: Vec<String>, -	//left out dupnames -	source: Option<Url>, +	ids:     Vec<String>, +	names:   Vec<String>, +	source:  Option<Url>,  	classes: Vec<String>, +	//left out dupnames  }  //----\\ @@ -30,10 +34,14 @@ pub struct CommonAttributes {  macro_rules! impl_element(($name:ident) => {  	impl Element for $name { -		fn ids(&self)     -> &Vec<String> { &self.common.ids } -		fn names(&self)   -> &Vec<String> { &self.common.names } -		fn source(&self)  -> &Option<Url> { &self.common.source } -		fn classes(&self) -> &Vec<String> { &self.common.classes } +		fn     ids    (&    self) -> &    Vec<String> { &    self.common.ids     } +		fn     ids_mut(&mut self) -> &mut Vec<String> { &mut self.common.ids     } +		fn   names    (&    self) -> &    Vec<String> { &    self.common.names   } +		fn   names_mut(&mut self) -> &mut Vec<String> { &mut self.common.names   } +		fn  source    (&    self) -> &    Option<Url> { &    self.common.source  } +		fn  source_mut(&mut self) -> &mut Option<Url> { &mut self.common.source  } +		fn classes    (&    self) -> &    Vec<String> { &    self.common.classes } +		fn classes_mut(&mut self) -> &mut Vec<String> { &mut self.common.classes }  	}  }); @@ -46,7 +54,8 @@ macro_rules! impl_children(($name:ident, $childtype:ident) => {  macro_rules! impl_extra(($name:ident) => {  	impl ExtraAttributes<extra_attributes::$name> for $name { -		fn extra(&self) -> &extra_attributes::$name { &self.extra } +		fn extra    (&    self) -> &    extra_attributes::$name { &    self.extra } +		fn extra_mut(&mut self) -> &mut extra_attributes::$name { &mut self.extra }  	}  }); | 
