'_normal_global_ops__not_loop: loop {
let pc = gs.pieces.byid_mut(piece)?;
let gpl = gs.players.byid_mut(player)?;
- let _: Impossible = match (self.opname.as_str(), self.wrc) {
+ let _: Void = match (self.opname.as_str(), self.wrc) {
("flip", wrc@ WRC::UpdateSvg) => {
let nfaces = p.nfaces();
}
'_abnormal_global_ops__notloop: loop {
- let _: Impossible = match self {
+ let _: Void = match self {
_ => break,
};
#[derive(Debug)]
struct Now(HashSet<ClientId>);
impl ClientIterator for Now {
- type Ret = Impossible;
- fn old(&mut self, client: ClientId) -> Option<Impossible> {
+ type Ret = Void;
+ fn old(&mut self, client: ClientId) -> Option<Void> {
self.0.insert(client);
None
}
pub use thiserror::Error;
pub use url::Url;
pub use vecdeque_stableix::Deque as StableIndexVecDeque;
+pub use void::Void;
pub use otter_base::zcoord::{self, ZCoord};
pub use otter_base::misc as base_misc;
pub type SvgData = Vec<u8>;
pub type Colour = Html;
-#[derive(Debug,Copy,Clone)]
-pub enum Impossible { }
-display_as_debug!(Impossible);
-
// ---------- type abbreviations ----------
pub type AE = anyhow::Error;
pub fn account_glob(&self) -> String {
fn scope_glob(scope: AccountScope) -> String {
let mut out = "".to_string();
- scope.display_name(&["*"], |s| Ok::<_,Impossible>(out += s)).unwrap();
+ scope.display_name(&["*"], |s| Ok::<_,Void>(out += s)).unwrap();
out
}
match self {
static MEMO: RwLock<MemoTable> = const_rwlock(None);
impl FromStr for Timezone {
- type Err = Impossible;
- #[throws(Impossible)]
+ type Err = Void;
+ #[throws(Void)]
fn from_str(name: &str) -> Self {
if name.is_empty() { return default() }