Fixes related to new send emote functionality
This commit is contained in:
parent
5381578b08
commit
36dd43bb70
3 changed files with 49 additions and 49 deletions
|
@ -11,10 +11,9 @@ use crate::constants::{
|
||||||
BACKEND_CLEANUP_INTERVAL_SECONDS, COLS, GAME_CLEANUP_TIMEOUT, PLAYER_CLEANUP_TIMEOUT,
|
BACKEND_CLEANUP_INTERVAL_SECONDS, COLS, GAME_CLEANUP_TIMEOUT, PLAYER_CLEANUP_TIMEOUT,
|
||||||
PLAYER_COUNT_LIMIT, ROWS, TURN_SECONDS,
|
PLAYER_COUNT_LIMIT, ROWS, TURN_SECONDS,
|
||||||
};
|
};
|
||||||
use crate::state::{board_from_string, new_string_board, string_from_board, BoardState, Turn};
|
use crate::state::{board_from_string, new_string_board, string_from_board, BoardState, Turn, EmoteEnum};
|
||||||
|
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
use std::fmt::Display;
|
|
||||||
use std::sync::mpsc::{Receiver, RecvTimeoutError, SyncSender};
|
use std::sync::mpsc::{Receiver, RecvTimeoutError, SyncSender};
|
||||||
use std::time::{Duration, Instant};
|
use std::time::{Duration, Instant};
|
||||||
use std::{fmt, thread};
|
use std::{fmt, thread};
|
||||||
|
@ -119,50 +118,6 @@ impl fmt::Display for DBPlaceError {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Copy, Clone, PartialEq, Eq, Debug)]
|
|
||||||
pub enum EmoteEnum {
|
|
||||||
Smile,
|
|
||||||
Neutral,
|
|
||||||
Frown,
|
|
||||||
Think,
|
|
||||||
}
|
|
||||||
|
|
||||||
impl Display for EmoteEnum {
|
|
||||||
fn fmt(&self, f: &mut fmt::Formatter<'_>) -> fmt::Result {
|
|
||||||
match *self {
|
|
||||||
EmoteEnum::Smile => f.write_str("smile"),
|
|
||||||
EmoteEnum::Neutral => f.write_str("neutral"),
|
|
||||||
EmoteEnum::Frown => f.write_str("frown"),
|
|
||||||
EmoteEnum::Think => f.write_str("think"),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl TryFrom<&str> for EmoteEnum {
|
|
||||||
type Error = ();
|
|
||||||
|
|
||||||
fn try_from(value: &str) -> Result<Self, Self::Error> {
|
|
||||||
match value.to_lowercase().as_str() {
|
|
||||||
"smile" => Ok(Self::Smile),
|
|
||||||
"neutral" => Ok(Self::Neutral),
|
|
||||||
"frown" => Ok(Self::Frown),
|
|
||||||
"think" => Ok(Self::Think),
|
|
||||||
_ => Err(()),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
impl From<EmoteEnum> for String {
|
|
||||||
fn from(e: EmoteEnum) -> Self {
|
|
||||||
match e {
|
|
||||||
EmoteEnum::Smile => "smile".into(),
|
|
||||||
EmoteEnum::Neutral => "neutral".into(),
|
|
||||||
EmoteEnum::Frown => "frown".into(),
|
|
||||||
EmoteEnum::Think => "think".into(),
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#[derive(Clone, Debug)]
|
#[derive(Clone, Debug)]
|
||||||
pub enum DBHandlerRequest {
|
pub enum DBHandlerRequest {
|
||||||
GetID {
|
GetID {
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
//You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
//You should have received a copy of the GNU General Public License along with this program. If not, see <https://www.gnu.org/licenses/>.
|
||||||
use crate::{
|
use crate::{
|
||||||
constants::BACKEND_PHRASE_MAX_LENGTH,
|
constants::BACKEND_PHRASE_MAX_LENGTH,
|
||||||
db_handler::{CheckPairingType, DBHandlerRequest, EmoteEnum, GetIDSenderType},
|
db_handler::{CheckPairingType, DBHandlerRequest, GetIDSenderType}, state::EmoteEnum,
|
||||||
};
|
};
|
||||||
|
|
||||||
use std::{
|
use std::{
|
||||||
|
|
|
@ -563,6 +563,7 @@ pub struct GameStateResponse {
|
||||||
pub r#type: String,
|
pub r#type: String,
|
||||||
pub status: String,
|
pub status: String,
|
||||||
pub board: Option<String>,
|
pub board: Option<String>,
|
||||||
|
pub peer_emote: Option<String>,
|
||||||
}
|
}
|
||||||
|
|
||||||
#[derive(Debug, Serialize, Deserialize)]
|
#[derive(Debug, Serialize, Deserialize)]
|
||||||
|
@ -593,6 +594,50 @@ pub enum PlacedEnum {
|
||||||
Other(NetworkedGameState),
|
Other(NetworkedGameState),
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#[derive(Copy, Clone, PartialEq, Eq, Debug)]
|
||||||
|
pub enum EmoteEnum {
|
||||||
|
Smile,
|
||||||
|
Neutral,
|
||||||
|
Frown,
|
||||||
|
Think,
|
||||||
|
}
|
||||||
|
|
||||||
|
impl Display for EmoteEnum {
|
||||||
|
fn fmt(&self, f: &mut std::fmt::Formatter<'_>) -> std::fmt::Result {
|
||||||
|
match *self {
|
||||||
|
EmoteEnum::Smile => f.write_str("smile"),
|
||||||
|
EmoteEnum::Neutral => f.write_str("neutral"),
|
||||||
|
EmoteEnum::Frown => f.write_str("frown"),
|
||||||
|
EmoteEnum::Think => f.write_str("think"),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl TryFrom<&str> for EmoteEnum {
|
||||||
|
type Error = ();
|
||||||
|
|
||||||
|
fn try_from(value: &str) -> Result<Self, Self::Error> {
|
||||||
|
match value.to_lowercase().as_str() {
|
||||||
|
"smile" => Ok(Self::Smile),
|
||||||
|
"neutral" => Ok(Self::Neutral),
|
||||||
|
"frown" => Ok(Self::Frown),
|
||||||
|
"think" => Ok(Self::Think),
|
||||||
|
_ => Err(()),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
impl From<EmoteEnum> for String {
|
||||||
|
fn from(e: EmoteEnum) -> Self {
|
||||||
|
match e {
|
||||||
|
EmoteEnum::Smile => "smile".into(),
|
||||||
|
EmoteEnum::Neutral => "neutral".into(),
|
||||||
|
EmoteEnum::Frown => "frown".into(),
|
||||||
|
EmoteEnum::Think => "think".into(),
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod tests {
|
||||||
use super::*;
|
use super::*;
|
||||||
|
@ -629,7 +674,7 @@ mod tests {
|
||||||
board[54].set(BoardState::Cyan);
|
board[54].set(BoardState::Cyan);
|
||||||
board[55].set(BoardState::Magenta);
|
board[55].set(BoardState::Magenta);
|
||||||
|
|
||||||
let (board_string, state_opt) = string_from_board(board.clone(), 51);
|
let (board_string, state_opt) = string_from_board(&board, 51);
|
||||||
|
|
||||||
let board_chars: Vec<char> = board_string.chars().collect();
|
let board_chars: Vec<char> = board_string.chars().collect();
|
||||||
assert_eq!(board_chars[49], 'b');
|
assert_eq!(board_chars[49], 'b');
|
||||||
|
@ -649,7 +694,7 @@ mod tests {
|
||||||
board[54].set(BoardState::Magenta);
|
board[54].set(BoardState::Magenta);
|
||||||
board[55].set(BoardState::Cyan);
|
board[55].set(BoardState::Cyan);
|
||||||
|
|
||||||
let (board_string, state_opt) = string_from_board(board.clone(), 51);
|
let (board_string, state_opt) = string_from_board(&board, 51);
|
||||||
|
|
||||||
let board_chars: Vec<char> = board_string.chars().collect();
|
let board_chars: Vec<char> = board_string.chars().collect();
|
||||||
assert_eq!(board_chars[49], 'c');
|
assert_eq!(board_chars[49], 'c');
|
||||||
|
|
Loading…
Reference in a new issue