From 072cba6a3ed6389886fcd87ff9ec71eb8f9ab524 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maxime=20=E2=80=9Cpep=E2=80=9D=20Buquet?= Date: Mon, 12 Jun 2017 17:40:39 +0100 Subject: [PATCH 1/4] Add get_ functions that return new truncated structs from the current one --- src/lib.rs | 44 ++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index b78001b05053436b49041500f83232c578f57286..323c43f640f34aa1583421842f1603974af01a5b 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -190,6 +190,28 @@ impl Jid { } } + /// Returns a new Jabber ID from the current one with only node and domain. + /// + /// This is of the form `node`@`domain`. + /// + /// # Examples + /// + /// ``` + /// use jid::Jid; + /// + /// let jid = Jid::full("node", "domain", "resource").get_bare(); + /// + /// assert_eq!(jid.node, Some("node".to_owned())); + /// assert_eq!(jid.domain, "domain".to_owned()); + /// assert_eq!(jid.resource, None); + pub fn get_bare(self) -> Jid { + Jid { + node: self.node.clone(), + domain: self.domain.clone(), + resource: None, + } + } + /// Constructs a Jabber ID containing only a `domain`. /// /// This is of the form `domain`. @@ -214,6 +236,28 @@ impl Jid { } } + /// Returns a new Jabber ID from the current one with only domain. + /// + /// This is of the form `domain`. + /// + /// # Examples + /// + /// ``` + /// use jid::Jid; + /// + /// let jid = Jid::full("node", "domain", "resource").get_domain(); + /// + /// assert_eq!(jid.node, None); + /// assert_eq!(jid.domain, "domain".to_owned()); + /// assert_eq!(jid.resource, None); + pub fn get_domain(self) -> Jid { + Jid { + node: None, + domain: self.domain.clone(), + resource: None, + } + } + /// Constructs a Jabber ID containing the `domain` and `resource` components. /// /// This is of the form `domain`/`resource`. From 10ab104ea011a503ecd0eb1e62ad74c4449eea4a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maxime=20=E2=80=9Cpep=E2=80=9D=20Buquet?= Date: Mon, 12 Jun 2017 17:46:06 +0100 Subject: [PATCH 2/4] Better without clones --- src/lib.rs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 323c43f640f34aa1583421842f1603974af01a5b..56de906a15504a42f10304743a7fb4d7e06e2c25 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -206,8 +206,8 @@ impl Jid { /// assert_eq!(jid.resource, None); pub fn get_bare(self) -> Jid { Jid { - node: self.node.clone(), - domain: self.domain.clone(), + node: self.node, + domain: self.domain, resource: None, } } @@ -253,7 +253,7 @@ impl Jid { pub fn get_domain(self) -> Jid { Jid { node: None, - domain: self.domain.clone(), + domain: self.domain, resource: None, } } From b69ecb31aa69669a25fb5655ee258ee374bf11c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maxime=20=E2=80=9Cpep=E2=80=9D=20Buquet?= Date: Mon, 12 Jun 2017 18:05:19 +0100 Subject: [PATCH 3/4] Renaming functions --- src/lib.rs | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/lib.rs b/src/lib.rs index 56de906a15504a42f10304743a7fb4d7e06e2c25..00af16f840aaee132f79fdcc18d438d12cebdeaf 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -199,12 +199,12 @@ impl Jid { /// ``` /// use jid::Jid; /// - /// let jid = Jid::full("node", "domain", "resource").get_bare(); + /// let jid = Jid::full("node", "domain", "resource").into_bare_jid(); /// /// assert_eq!(jid.node, Some("node".to_owned())); /// assert_eq!(jid.domain, "domain".to_owned()); /// assert_eq!(jid.resource, None); - pub fn get_bare(self) -> Jid { + pub fn into_bare_jid(self) -> Jid { Jid { node: self.node, domain: self.domain, @@ -245,12 +245,12 @@ impl Jid { /// ``` /// use jid::Jid; /// - /// let jid = Jid::full("node", "domain", "resource").get_domain(); + /// let jid = Jid::full("node", "domain", "resource").into_domain_jid(); /// /// assert_eq!(jid.node, None); /// assert_eq!(jid.domain, "domain".to_owned()); /// assert_eq!(jid.resource, None); - pub fn get_domain(self) -> Jid { + pub fn into_domain_jid(self) -> Jid { Jid { node: None, domain: self.domain, From 2f59ca4b56c392e05b47091ff3c2005ff85fcb2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Maxime=20=E2=80=9Cpep=E2=80=9D=20Buquet?= Date: Mon, 12 Jun 2017 18:20:42 +0100 Subject: [PATCH 4/4] Fix doctests --- src/lib.rs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib.rs b/src/lib.rs index 00af16f840aaee132f79fdcc18d438d12cebdeaf..5ced40038ffc54efd895bbc4946596eaac8041c3 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -204,6 +204,7 @@ impl Jid { /// assert_eq!(jid.node, Some("node".to_owned())); /// assert_eq!(jid.domain, "domain".to_owned()); /// assert_eq!(jid.resource, None); + /// ``` pub fn into_bare_jid(self) -> Jid { Jid { node: self.node, @@ -250,6 +251,7 @@ impl Jid { /// assert_eq!(jid.node, None); /// assert_eq!(jid.domain, "domain".to_owned()); /// assert_eq!(jid.resource, None); + /// ``` pub fn into_domain_jid(self) -> Jid { Jid { node: None,