Update the build environment and some architectural elements of the Kifu app #210

Merged
savanni merged 13 commits from kifu/flake into main 2024-02-28 04:42:58 +00:00
11 changed files with 5 additions and 43 deletions
Showing only changes of commit f476481d5d - Show all commits

1
Cargo.lock generated
View File

@ -2232,7 +2232,6 @@ dependencies = [
"serde_json",
"sgf",
"thiserror",
"typeshare",
]
[[package]]

View File

@ -15,7 +15,6 @@ grid = { version = "0.9" }
serde_json = { version = "1" }
serde = { version = "1", features = [ "derive" ] }
thiserror = { version = "1" }
typeshare = { version = "1" }
[dev-dependencies]
cool_asserts = { version = "2" }

View File

@ -1,15 +1,15 @@
use crate::{
database::Database, types::{AppState, Config, ConfigOption, DatabasePath, GameState, Player, Rank}, ui::{configuration, home, playing_field, ConfigurationView, HomeView, PlayingFieldView}
database::Database,
types::{AppState, Config, ConfigOption, DatabasePath, GameState, Player, Rank},
ui::{configuration, home, playing_field, ConfigurationView, HomeView, PlayingFieldView},
};
use serde::{Deserialize, Serialize};
use std::{
path::PathBuf,
sync::{Arc, RwLock},
};
use typeshare::typeshare;
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
#[typeshare]
#[serde(tag = "type", content = "content")]
pub enum CoreRequest {
ChangeSetting(ChangeSettingRequest),
@ -22,34 +22,29 @@ pub enum CoreRequest {
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
#[typeshare]
#[serde(tag = "type", content = "content")]
pub enum ChangeSettingRequest {
LibraryPath(String),
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)]
#[typeshare]
pub struct PlayStoneRequest {
pub column: u8,
pub row: u8,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
#[typeshare]
pub struct CreateGameRequest {
pub black_player: PlayerInfoRequest,
pub white_player: PlayerInfoRequest,
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
#[typeshare]
pub enum PlayerInfoRequest {
Hotseat(HotseatPlayerRequest),
}
#[derive(Clone, Debug, PartialEq, Eq, Serialize, Deserialize)]
#[typeshare]
pub struct HotseatPlayerRequest {
pub name: String,
pub rank: Option<String>,
@ -65,7 +60,6 @@ impl From<HotseatPlayerRequest> for Player {
}
#[derive(Clone, Debug, Serialize, Deserialize)]
#[typeshare]
#[serde(tag = "type", content = "content")]
pub enum CoreResponse {
ConfigurationView(ConfigurationView),

View File

@ -1,6 +1,6 @@
use crate::{
api::PlayStoneRequest,
board::{Goban, Coordinate},
board::{Coordinate, Goban},
database::Database,
};
use config::define_config;
@ -8,7 +8,6 @@ use config_derive::ConfigOption;
use serde::{Deserialize, Serialize};
use std::{path::PathBuf, time::Duration};
use thiserror::Error;
use typeshare::typeshare;
define_config! {
DatabasePath(DatabasePath),
@ -52,14 +51,12 @@ pub enum BoardError {
}
#[derive(Clone, Copy, Debug, PartialEq, Hash, Eq, Serialize, Deserialize)]
#[typeshare]
pub enum Color {
Black,
White,
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)]
#[typeshare]
pub struct Size {
pub width: u8,
pub height: u8,
@ -99,7 +96,6 @@ impl AppState {
}
#[derive(Clone, Copy, Debug, PartialEq, Eq, Serialize, Deserialize)]
#[typeshare]
pub enum Rank {
Kyu(u8),
Dan(u8),

View File

@ -3,10 +3,8 @@ use crate::{
ui::Field,
};
use serde::{Deserialize, Serialize};
use typeshare::typeshare;
#[derive(Clone, Debug, Serialize, Deserialize)]
#[typeshare]
pub struct ConfigurationView {
pub library: Field<()>,
}

View File

@ -1,9 +1,7 @@
use serde::{Deserialize, Serialize};
use sgf::{Game, GameResult, Win};
use typeshare::typeshare;
#[derive(Clone, Debug, Deserialize, Serialize)]
#[typeshare]
pub struct GamePreviewElement {
pub date: String,
pub name: String,

View File

@ -1,8 +1,6 @@
use serde::{Deserialize, Serialize};
use typeshare::typeshare;
#[derive(Clone, Debug, Serialize, Deserialize)]
#[typeshare]
pub struct Menu<T: PartialEq + Eq> {
current: Option<T>,
options: Vec<T>,

View File

@ -1,11 +1,9 @@
use serde::{Deserialize, Serialize};
use typeshare::typeshare;
pub mod game_preview;
pub mod menu;
#[derive(Clone, Debug, Serialize, Deserialize)]
#[typeshare]
pub struct Action<A> {
pub id: String,
pub label: String,
@ -13,7 +11,6 @@ pub struct Action<A> {
}
#[derive(Clone, Debug, Serialize, Deserialize)]
#[typeshare]
pub struct Toggle<A> {
pub id: String,
pub label: String,
@ -22,7 +19,6 @@ pub struct Toggle<A> {
}
#[derive(Clone, Debug, Serialize, Deserialize)]
#[typeshare]
pub struct Field<A> {
pub id: String,
pub label: String,

View File

@ -1,7 +1,6 @@
use crate::ui::{Action, GamePreviewElement};
use serde::{Deserialize, Serialize};
use sgf::Game;
use typeshare::typeshare;
fn rank_strings() -> Vec<String> {
vec![
@ -18,7 +17,6 @@ fn rank_strings() -> Vec<String> {
}
#[derive(Clone, Debug, Serialize, Deserialize)]
#[typeshare]
pub enum PlayerElement {
Hotseat(HotseatPlayerElement),
// Remote(RemotePlayerElement),
@ -32,7 +30,6 @@ impl Default for PlayerElement {
}
#[derive(Clone, Debug, Serialize, Deserialize, Default)]
#[typeshare]
pub struct HotseatPlayerElement {
pub placeholder: Option<String>,
pub default_rank: Option<String>,
@ -40,15 +37,12 @@ pub struct HotseatPlayerElement {
}
#[derive(Clone, Debug, Serialize, Deserialize)]
#[typeshare]
pub struct RemotePlayerElement {}
#[derive(Clone, Debug, Serialize, Deserialize)]
#[typeshare]
pub struct BotPlayerElement {}
#[derive(Clone, Debug, Serialize, Deserialize)]
#[typeshare]
pub struct HomeView {
pub black_player: PlayerElement,
pub white_player: PlayerElement,

View File

@ -3,10 +3,8 @@ use crate::{
ui::types,
};
use serde::{Deserialize, Serialize};
use typeshare::typeshare;
#[derive(Clone, Debug, Serialize, Deserialize)]
#[typeshare]
pub struct PlayingFieldView {
pub board: types::BoardElement,
pub player_card_black: types::PlayerCardElement,

View File

@ -1,20 +1,17 @@
use crate::types::{Color, Size};
use crate::{
api::{CoreRequest, PlayStoneRequest},
Goban, Coordinate,
Coordinate, Goban,
};
use serde::{Deserialize, Serialize};
use typeshare::typeshare;
#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize)]
#[typeshare]
pub struct Jitter {
pub x: i8,
pub y: i8,
}
#[derive(Clone, Copy, Debug, PartialEq, Serialize, Deserialize)]
#[typeshare]
pub struct StoneElement {
pub color: Color,
pub jitter: Jitter,
@ -32,7 +29,6 @@ impl StoneElement {
}
#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[typeshare]
#[serde(tag = "type", content = "content")]
pub enum IntersectionElement {
Unplayable,
@ -41,7 +37,6 @@ pub enum IntersectionElement {
}
#[derive(Clone, Debug, Serialize, Deserialize)]
#[typeshare]
pub struct BoardElement {
pub size: Size,
pub spaces: Vec<IntersectionElement>,
@ -114,7 +109,6 @@ impl Default for BoardElement {
}
#[derive(Clone, Debug, Serialize, Deserialize)]
#[typeshare]
pub struct PlayerCardElement {
pub color: Color,
pub name: String,
@ -123,11 +117,9 @@ pub struct PlayerCardElement {
}
#[derive(Clone, Debug, Serialize, Deserialize)]
#[typeshare]
pub struct ChatElement {
pub messages: Vec<String>,
}
#[derive(Clone, Debug, Serialize, Deserialize)]
#[typeshare]
pub struct TextFieldElement {}