Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- extern crate regex;
- extern crate uuid;
- use regex::Regex;
- use uuid::Uuid;
- pub struct Player<'a> {
- match_id: &'a Uuid,
- player_id: i64,
- mmr_change: i32,
- is_winner: bool
- }
- pub fn generate_players<'a>(match_id: &'a Uuid, command: &str) -> Vec<Player<'a>> {
- let (winners, losers) = split_players(command);
- let winners = get_ids(winners);
- let losers = get_ids(losers);
- winners.into_iter().chain(losers.into_iter())
- .map(|id| {
- Player {
- match_id,
- player_id: id,
- mmr_change: 25,
- is_winner: true
- }
- })
- .collect()
- }
- fn split_players(command: &str) -> (&str, &str) {
- let mut split = command.split("defeated");
- (split.next().unwrap(), split.next().unwrap())
- }
- fn get_ids(command: &str) -> Vec<i64> {
- let re = Regex::new(r"<@(\d+)>").unwrap();
- re.captures_iter(command)
- .map(|capture| capture[1].parse().unwrap())
- .collect()
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement