|  |  |  | @ -1,5 +1,5 @@ | 
			
		
	
		
			
				
					|  |  |  |  | /// A builder pattern struct for constructing a status.
 | 
			
		
	
		
			
				
					|  |  |  |  | #[derive(Debug, Default, Clone, Serialize)] | 
			
		
	
		
			
				
					|  |  |  |  | #[derive(Debug, Default, Clone, Serialize, PartialEq)] | 
			
		
	
		
			
				
					|  |  |  |  | pub struct StatusBuilder { | 
			
		
	
		
			
				
					|  |  |  |  |     /// The text of the status.
 | 
			
		
	
		
			
				
					|  |  |  |  |     pub status: String, | 
			
		
	
	
		
			
				
					|  |  |  | @ -21,19 +21,16 @@ pub struct StatusBuilder { | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | /// The visibility of a status.
 | 
			
		
	
		
			
				
					|  |  |  |  | #[derive(Clone, Copy, Debug, Deserialize, Serialize)] | 
			
		
	
		
			
				
					|  |  |  |  | #[derive(Clone, Copy, Debug, Deserialize, Serialize, PartialEq)] | 
			
		
	
		
			
				
					|  |  |  |  | #[serde(rename_all = "lowercase")] | 
			
		
	
		
			
				
					|  |  |  |  | pub enum Visibility { | 
			
		
	
		
			
				
					|  |  |  |  |     /// A Direct message to a user
 | 
			
		
	
		
			
				
					|  |  |  |  |     #[serde(rename = "direct")] | 
			
		
	
		
			
				
					|  |  |  |  |     Direct, | 
			
		
	
		
			
				
					|  |  |  |  |     /// Only available to followers
 | 
			
		
	
		
			
				
					|  |  |  |  |     #[serde(rename = "private")] | 
			
		
	
		
			
				
					|  |  |  |  |     Private, | 
			
		
	
		
			
				
					|  |  |  |  |     /// Not shown in public timelines
 | 
			
		
	
		
			
				
					|  |  |  |  |     #[serde(rename = "unlisted")] | 
			
		
	
		
			
				
					|  |  |  |  |     Unlisted, | 
			
		
	
		
			
				
					|  |  |  |  |     /// Posted to public timelines
 | 
			
		
	
		
			
				
					|  |  |  |  |     #[serde(rename = "public")] | 
			
		
	
		
			
				
					|  |  |  |  |     Public, | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | @ -42,11 +39,11 @@ impl StatusBuilder { | 
			
		
	
		
			
				
					|  |  |  |  |     /// ```
 | 
			
		
	
		
			
				
					|  |  |  |  |     /// use elefren::prelude::*;
 | 
			
		
	
		
			
				
					|  |  |  |  |     ///
 | 
			
		
	
		
			
				
					|  |  |  |  |     /// let status = StatusBuilder::new("Hello World!".into());
 | 
			
		
	
		
			
				
					|  |  |  |  |     /// let status = StatusBuilder::new("Hello World!");
 | 
			
		
	
		
			
				
					|  |  |  |  |     /// ```
 | 
			
		
	
		
			
				
					|  |  |  |  |     pub fn new(status: String) -> Self { | 
			
		
	
		
			
				
					|  |  |  |  |     pub fn new<I: Into<String>>(status: I) -> Self { | 
			
		
	
		
			
				
					|  |  |  |  |         StatusBuilder { | 
			
		
	
		
			
				
					|  |  |  |  |             status, | 
			
		
	
		
			
				
					|  |  |  |  |             status: status.into(), | 
			
		
	
		
			
				
					|  |  |  |  |             ..Self::default() | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
	
		
			
				
					|  |  |  | @ -57,3 +54,28 @@ impl Default for Visibility { | 
			
		
	
		
			
				
					|  |  |  |  |         Visibility::Public | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | #[cfg(test)] | 
			
		
	
		
			
				
					|  |  |  |  | mod tests { | 
			
		
	
		
			
				
					|  |  |  |  |     use super::*; | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     #[test] | 
			
		
	
		
			
				
					|  |  |  |  |     fn test_new() { | 
			
		
	
		
			
				
					|  |  |  |  |         let s = StatusBuilder::new("a status"); | 
			
		
	
		
			
				
					|  |  |  |  |         let expected = StatusBuilder { | 
			
		
	
		
			
				
					|  |  |  |  |             status: "a status".to_string(), | 
			
		
	
		
			
				
					|  |  |  |  |             in_reply_to_id: None, | 
			
		
	
		
			
				
					|  |  |  |  |             media_ids: None, | 
			
		
	
		
			
				
					|  |  |  |  |             sensitive: None, | 
			
		
	
		
			
				
					|  |  |  |  |             spoiler_text: None, | 
			
		
	
		
			
				
					|  |  |  |  |             visibility: None, | 
			
		
	
		
			
				
					|  |  |  |  |         }; | 
			
		
	
		
			
				
					|  |  |  |  |         assert_eq!(s, expected); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     #[test] | 
			
		
	
		
			
				
					|  |  |  |  |     fn test_default_visibility() { | 
			
		
	
		
			
				
					|  |  |  |  |         let v = Visibility::default(); | 
			
		
	
		
			
				
					|  |  |  |  |         assert_eq!(v, Visibility::Public); | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | } | 
			
		
	
	
		
			
				
					|  |  |  | 
 |