1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#![feature(option_expect_none)]
#![feature(fn_traits)]
#![feature(unboxed_closures)]
#![warn(anonymous_parameters)]
#![warn(bare_trait_objects)]
#![warn(elided_lifetimes_in_paths)]
#![warn(missing_debug_implementations)]
#![warn(single_use_lifetimes)]
#![warn(trivial_casts)]
#![warn(unreachable_pub)]
#![forbid(unsafe_code)]
#![warn(unused_extern_crates)]
#![warn(unused_import_braces)]
#![warn(unused_qualifications)]
#![warn(unused_results)]
#![warn(variant_size_differences)]
#![doc(html_favicon_url = "https://raw.githubusercontent.com/solitaire/solitaire/master/crates/assets/embed/favicon.ico")]
#![doc(html_logo_url = "https://raw.githubusercontent.com/solitaire/solitaire/master/crates/assets/embed/favicon.png")]
#![doc(issue_tracker_base_url = "https://github.com/solitaire/solitaire/issues/")]

//! `solitaire-core` contains definitions that are shared between server and client.

/// The name of the app, used in a lot of places
pub const APPNAME: &str = "solitaire";

/// Static information about the environent and build invocation
pub mod build_info;

pub mod card {
  pub mod card;
  pub mod color;
  pub mod deck;
  pub mod rank;
  pub mod suit;
}

pub mod game {
  pub mod moves;
}

pub mod messages {
  pub mod req;
  pub mod rsp;
}

pub mod profile;

pub mod util;

#[doc(inline)]
pub use crate::messages::req::RequestMessage;
#[doc(inline)]
pub use crate::messages::rsp::ResponseMessage;

#[cfg(test)]
pub mod tests;