Skip to content

Commit 9f9f11e

Browse files
committed
make naming more consistent
1 parent 1b26273 commit 9f9f11e

File tree

2 files changed

+35
-16
lines changed

2 files changed

+35
-16
lines changed

src/dns.rs

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -26,19 +26,33 @@ impl<'a> Name<'a> {
2626
self.full
2727
}
2828

29+
fn without_suffix(&self) -> Option<&str> {
30+
let domain_len = self.full.len();
31+
let suffix_len = self.suffix()?.len();
32+
if domain_len == suffix_len {
33+
return None;
34+
}
35+
self.full.get(..domain_len - suffix_len - 1)
36+
}
37+
2938
/// The root domain (the registrable part)
3039
pub fn root(&self) -> Option<&str> {
31-
let offset = self.prefix()?.rfind('.').map(|x| x + 1).unwrap_or_default();
40+
let offset = self
41+
.without_suffix()?
42+
.rfind('.')
43+
.map(|x| x + 1)
44+
.unwrap_or_default();
3245
self.full.get(offset..)
3346
}
3447

35-
fn prefix(&self) -> Option<&str> {
48+
/// The part before the root domain (aka. subdomain)
49+
pub fn prefix(&self) -> Option<&str> {
3650
let domain_len = self.full.len();
37-
let suffix_len = self.suffix()?.len();
38-
if domain_len == suffix_len {
51+
let root_len = self.root()?.len();
52+
if domain_len == root_len {
3953
return None;
4054
}
41-
self.full.get(..domain_len - suffix_len - 1)
55+
self.full.get(..domain_len - root_len - 1)
4256
}
4357

4458
/// The domain name suffix (extension)

src/domain.rs

Lines changed: 16 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -35,13 +35,27 @@ impl<'a> Name<'a> {
3535
self.full
3636
}
3737

38+
fn without_suffix(&self) -> Option<&str> {
39+
let domain_len = self.full.len();
40+
let suffix_len = self.suffix().len();
41+
if domain_len == suffix_len {
42+
return None;
43+
}
44+
self.full.get(..domain_len - suffix_len - 1)
45+
}
46+
3847
/// The root domain (the registrable part)
3948
pub fn root(&self) -> Option<&str> {
40-
let offset = self.prefix()?.rfind('.').map(|x| x + 1).unwrap_or_default();
49+
let offset = self
50+
.without_suffix()?
51+
.rfind('.')
52+
.map(|x| x + 1)
53+
.unwrap_or_default();
4154
self.full.get(offset..)
4255
}
4356

44-
pub fn sub_domain(&self) -> Option<&str> {
57+
/// The part before the root domain (aka. subdomain)
58+
pub fn prefix(&self) -> Option<&str> {
4559
let domain_len = self.full.len();
4660
let root_len = self.root()?.len();
4761
if domain_len == root_len {
@@ -50,15 +64,6 @@ impl<'a> Name<'a> {
5064
self.full.get(..domain_len - root_len - 1)
5165
}
5266

53-
fn prefix(&self) -> Option<&str> {
54-
let domain_len = self.full.len();
55-
let suffix_len = self.suffix().len();
56-
if domain_len == suffix_len {
57-
return None;
58-
}
59-
self.full.get(..domain_len - suffix_len - 1)
60-
}
61-
6267
/// The domain name suffix (extension)
6368
pub fn suffix(&self) -> &str {
6469
let offset = self.full.len() - self.suffix.as_bytes().len();

0 commit comments

Comments
 (0)