pub struct TomlDe<'de>(pub &'de toml::Value);
-struct SA<'de> (slice::Iter<'de, toml::Value>);
+struct SA<'de>(slice::Iter<'de, toml::Value>);
impl<'de> SeqAccess<'de> for SA<'de> {
type Error = Error;
}
}
-struct MA<'de> (Peekable<toml::map::Iter<'de>>);
+struct MA<'de>(Peekable<toml::map::Iter<'de>>);
impl<'de> MapAccess<'de> for MA<'de> {
type Error = Error;
if let None = s.next();
then { return vi.visit_enum(EA { k, v }) }
},
- _ => {},
+ _ => {}
}
// hopefully the format will figure it out, or produce an error
visit(vi, &self.0)?
}
#[throws(Error)]
-pub fn from_value<'de, T: Deserialize<'de>> (tv: &'de toml::Value) -> T
-{
+pub fn from_value<'de, T: Deserialize<'de>>(tv: &'de toml::Value) -> T {
Deserialize::deserialize(TomlDe(tv))?
}
#[throws(Error)]
-pub fn from_str<T: DeserializeOwned> (s: &str) -> T
-{
- let tv : toml::Value = s.parse().map_err(Error::TomlSyntax)?;
+pub fn from_str<T: DeserializeOwned>(s: &str) -> T {
+ let tv: toml::Value = s.parse().map_err(Error::TomlSyntax)?;
// dbg!(&tv);
from_value(&tv)?
}
use crate::imports::*;
-use parking_lot::{RwLock, const_rwlock};
+use parking_lot::{const_rwlock, RwLock};
#[derive(SerializeDisplay)]
#[derive(DeserializeFromStr)]
#[derive(Clone,Debug)]
-pub struct Timezone (Arc<TzInfo>);
+pub struct Timezone(Arc<TzInfo>);
#[derive(Clone,Debug,Default)]
struct TzInfo {
name: String,
ctz: Option<chrono_tz::Tz>,
}
-
+
impl Timezone {
pub fn name(&self) -> &str {
&self.0.name
fn format_tz<'r, TZ: chrono::TimeZone>(
tz: &TZ, ts: Timestamp, fmt: &'r str
) -> chrono::format::DelayedFormat<chrono::format::StrftimeItems<'r>>
- where <TZ as chrono::TimeZone>::Offset : Display
+ where <TZ as chrono::TimeZone>::Offset: Display
{
use chrono::DateTime;
let dt = tz.timestamp_opt(ts.0.try_into().ok()?, 0).single()?;
Err(emsg) => {
error!("Error loading timezone {:?}: {}, using UTC", name, emsg);
Arc::new(TzInfo { name, ctz: None })
- },
+ }
}
};
let out = Timezone(out);
#[derive(Debug)] // not Default
pub struct ExecuteGameChangeUpdates {
- pub pcs: Vec<(PieceId,PieceUpdateOp<(),()>)>,
+ pub pcs: Vec<(PieceId, PieceUpdateOp<(), ()>)>,
pub log: Vec<LogEntry>,
pub raw: Option<Vec<PreparedUpdateEntry>>,
}
#[derive(Debug)]
pub struct PlayerUpdates {
- log : PlayerUpdatesLog,
- cv : Arc<Condvar>,
+ log: PlayerUpdatesLog,
+ cv: Arc<Condvar>,
}
#[derive(Debug)]
pub struct PreparedUpdate {
- pub gen : Generation,
+ pub gen: Generation,
pub when: Instant,
- pub us : Vec<PreparedUpdateEntry>,
+ pub us: Vec<PreparedUpdateEntry>,
}
#[derive(Debug)]
pub enum PreparedUpdateEntry {
Piece {
by_client: IsResponseToClientOp,
- piece : VisiblePieceId,
- op : PieceUpdateOp<PreparedPieceState,ZLevel>,
+ piece: VisiblePieceId,
+ op: PieceUpdateOp<PreparedPieceState, ZLevel>,
},
SetTableSize(Pos),
SetTableColour(Colour),
#[derive(Debug,Clone,Serialize)]
pub struct PreparedPieceState {
- pub pos : Pos,
- pub svg : Html,
- pub held : Option<PlayerId>,
- pub z : ZCoord,
- pub zg : Generation,
- pub pinned : bool,
+ pub pos: Pos,
+ pub svg: Html,
+ pub held: Option<PlayerId>,
+ pub z: ZCoord,
+ pub zg: Generation,
+ pub pinned: bool,
pub uos: Vec<UoDescription>,
}
#[derive(Serialize,Debug)]
pub struct DataLoadPlayer {
- dasharray : String,
+ dasharray: String,
}
// ---------- piece updates ----------
#[derive(Debug,Serialize)]
enum TransmitUpdateEntry<'u> {
Recorded {
- piece : VisiblePieceId,
- cseq : ClientSequence,
- zg : Option<Generation>,
+ piece: VisiblePieceId,
+ cseq: ClientSequence,
+ zg: Option<Generation>,
svg: Option<&'u Html>, // IsResponseToClientOp::UpdateSvg
},
Piece {
- piece : VisiblePieceId,
- op : PieceUpdateOp<&'u PreparedPieceState, &'u ZLevel>,
+ piece: VisiblePieceId,
+ op: PieceUpdateOp<&'u PreparedPieceState, &'u ZLevel>,
},
RecordedUnpredictable {
- piece : VisiblePieceId,
- cseq : ClientSequence,
+ piece: VisiblePieceId,
+ cseq: ClientSequence,
ns: &'u PreparedPieceState,
},
SetTableSize(Pos),
impl PlayerUpdates {
pub fn new_begin(gs: &GameState) -> PlayerUpdatesBuildContext {
let u1 = Arc::new(PreparedUpdate {
- gen : gs.gen,
+ gen: gs.gen,
when: Instant::now(),
us: vec![],
});