aboutsummaryrefslogtreecommitdiff
path: root/src/model/misc.rs
diff options
context:
space:
mode:
authoracdenisSK <[email protected]>2017-10-24 18:05:25 +0200
committeracdenisSK <[email protected]>2017-10-24 18:05:25 +0200
commit8c85664a94f7439ab4bc3a132f313a9e26d94fe7 (patch)
tree8ed5ec483b4430dcd73833ff564e8d0fadf2031d /src/model/misc.rs
parentFix User::has_role (diff)
downloadserenity-8c85664a94f7439ab4bc3a132f313a9e26d94fe7.tar.xz
serenity-8c85664a94f7439ab4bc3a132f313a9e26d94fe7.zip
Fall back to `str::parse` if `parse_username` fails
Diffstat (limited to 'src/model/misc.rs')
-rw-r--r--src/model/misc.rs7
1 files changed, 4 insertions, 3 deletions
diff --git a/src/model/misc.rs b/src/model/misc.rs
index af49a76..3398a14 100644
--- a/src/model/misc.rs
+++ b/src/model/misc.rs
@@ -125,9 +125,10 @@ impl FromStr for UserId {
type Err = UserIdParseError;
fn from_str(s: &str) -> StdResult<Self, Self::Err> {
- utils::parse_username(s)
- .ok_or_else(|| UserIdParseError::InvalidFormat)
- .map(UserId)
+ Ok(match utils::parse_username(s)
+ Some(id) => UserId(id),
+ None => s.parse::<u64>().map(UserId).map_err(|_| UserIdParseError::InvalidFormat)
+ })
}
}