chiark / gitweb /
10baa4409474e812d7228b4df71efac13c648d2f
[otter.git] / src / imports.rs
1 // Copyright 2020-2021 Ian Jackson and contributors to Otter
2 // SPDX-License-Identifier: AGPL-3.0-or-later
3 // There is NO WARRANTY.
4
5 // See Import Structure Doctrine in src/prelude.rs
6
7 use crate::crates::*;
8 use otter_support::crates::*;
9 use otter_base::crates::*;
10
11 use otter_base::imports::*;
12
13 pub use std::any::Any;
14 pub use std::convert::{Infallible, TryFrom, TryInto};
15 pub use std::error::Error;
16 pub use std::ffi::OsStr;
17 pub use std::fmt::Formatter;
18 pub use std::fmt::Write as _;
19 pub use std::fmt::{self, Debug, Display};
20 pub use std::hash::Hash;
21 pub use std::iter;
22 pub use std::iter::{repeat_with};
23 pub use std::num::{NonZeroUsize, TryFromIntError, Wrapping};
24 pub use std::path::PathBuf;
25 pub use std::str;
26 pub use std::str::FromStr;
27 pub use std::string::ParseError;
28 pub use std::sync::atomic::AtomicBool;
29 pub use std::sync::mpsc;
30 pub use std::thread::{self, sleep};
31
32 pub use async_condvar_fair::{Condvar, BatonExt as _};
33 pub use boolinator::Boolinator as _;
34 pub use cast_trait_object::{dyn_upcast, DynCastExt};
35 pub use const_default::ConstDefault;
36 pub use delegate::delegate;
37 pub use downcast_rs::{impl_downcast, Downcast};
38 pub use either::{Either, Left, Right};
39 pub use enum_dispatch::enum_dispatch;
40 pub use enum_map::{Enum, EnumMap};
41 pub use fehler::{throw, throws};
42 pub use index_vec::{define_index_type, index_vec, IndexSlice, IndexVec};
43 pub use lazy_regex::{self, regex, regex_captures};
44 pub use ordered_float::OrderedFloat;
45 pub use percent_encoding::percent_decode_str;
46 pub use percent_encoding::utf8_percent_encode;
47 pub use percent_encoding::NON_ALPHANUMERIC;
48 pub use regex::Regex;
49 pub use subtle::ConstantTimeEq;
50 pub use tempfile::{self, NamedTempFile};
51 pub use tera::Tera;
52 pub use unicase::UniCase;
53 pub use url::Url;
54 pub use vecdeque_stableix::Deque as StableIndexVecDeque;
55 pub use vecdeque_stableix::Offset as StableIndexOffset;
56 pub use void::{unreachable, Void, ResultVoidExt, ResultVoidErrExt};
57 pub use crate::crates::zipfile::{self, read::ZipFile, result::ZipError};
58
59 use nix::time::ClockId;
60 pub const CLOCK_REALTIME : ClockId = ClockId::CLOCK_REALTIME ;
61 pub const CLOCK_MONOTONIC: ClockId = ClockId::CLOCK_MONOTONIC;
62
63 pub use otter_base::{pos_zip_map, pos_zip_try_map};
64 pub use otter_base::geometry::{self,Coord,Pos,PosC,Rect,RectC};
65 pub use otter_base::geometry::{CoordinateOverflow,Region};
66 pub use otter_base::zcoord::{self, ZCoord};
67 pub use otter_base::misc as base_misc;
68 pub use otter_base::dbgc;
69 pub use base_misc::*;
70
71 pub use crate::{deref_to_field, deref_to_field_mut};
72 pub use crate::ensure_eq;
73 pub use crate::format_by_fmt_hex;
74 pub use crate::impl_via_ambassador;
75 pub use crate::{want, wantok, wants, want_let, want_failed_internal};
76 pub use crate::serde_with_compat;
77
78 pub use crate::accounts::loaded_acl::{self, EffectiveACL, LoadedAcl, PermSet};
79 pub use crate::accounts::*;
80 pub use crate::asseturl::*;
81 pub use crate::bundles::{self, InstanceBundles, MgmtBundleListExt};
82 pub use crate::commands::{AccessTokenInfo, AccessTokenReport, MgmtError};
83 pub use crate::commands::{MgmtCommand, MgmtResponse};
84 pub use crate::commands::{MgmtGameInstruction, MgmtGameResponse};
85 pub use crate::commands::{MgmtBundleList, MgmtGameUpdateMode};
86 pub use crate::commands::{ProgressUpdateMode};
87 pub use crate::debugreader::DebugReader;
88 pub use crate::error::*;
89 pub use crate::fastsplit::*;
90 pub use crate::gamestate::*;
91 pub use crate::global::*;
92 pub use crate::hidden::*;
93 pub use crate::nwtemplates;
94 pub use crate::materials_format;
95 pub use crate::mgmtchannel::*;
96 pub use crate::occultilks::*;
97 pub use crate::organise;
98 pub use crate::outline::*;
99 pub use crate::pcaliases::*;
100 pub use crate::pcrender::*;
101 pub use crate::pieces::*;
102 pub use crate::shapelib;
103 pub use crate::shapelib::{ItemEnquiryData, LibraryEnquiryData};
104 pub use crate::shapelib::{LibraryLoadError};
105 pub use crate::spec::*;
106 pub use crate::spec::imp::{ColourSpecExt as _, OptionPieceAngleSpecExt as _};
107 pub use crate::spec::piece_specs::{FaceColourSpecs, SimpleCommon};
108 pub use crate::updates::*;
109 pub use crate::utils::*;
110 pub use crate::ui::*;
111
112 pub use crate::gamestate::RefTraitObjectPieceTraitExt as _;
113 pub use crate::fastsplit::RefTraitObjectPieceTraitExt as _;
114
115 pub type SvgData = Vec<u8>;
116 pub type Colour = Html;
117
118 // ---------- type abbreviations ----------
119
120 // accounts.rs
121 pub type AS = AccountScope;
122
123 // commands.rs
124 pub type MC = MgmtCommand;
125 pub type ME = MgmtError;
126 pub type MGI = MgmtGameInstruction;
127 pub type MGR = MgmtGameResponse;
128 pub type MR = MgmtResponse;
129 pub type PUM = ProgressUpdateMode;
130
131 // error.rs
132 pub type APOE = ApiPieceOpError;
133 pub type ESVU<POEPU,EM> = ErrorSignaledViaUpdate<POEPU,EM>;
134 pub type IE = InternalError;
135 pub type Ia = Inapplicable;
136 pub type POEPP = PieceOpErrorPartiallyProcessed;
137 pub type SvgE = SVGProcessingError;
138 pub type SpE = SpecError;
139
140 // gamestate.rs
141 pub use PieceLoadArgs as PLA;
142
143 // hidden.rs
144 pub type OccK = OccultationKind;
145 pub use OccultationKindGeneral as OccKG;
146 pub use OccultationKindAlwaysOk as OccKA;
147
148 // materials-format.rs
149
150 pub use materials_format::VersionError as MFVE;
151
152 // occultilks.rs
153 pub type LOI = LOccultIlk;
154 pub type IOI = IOccultIlk;
155
156 // pcrender.rs
157 pub use PriOccultedGeneral as PriOG;
158
159 // shapelib.rs
160 pub use shapelib::LibraryLoadError as LLE;
161 pub use shapelib::LibraryLoadMFIncompat as LLMI;
162
163 // updates.rs
164 pub use OpOutcomeThunkGeneric as OOTG;
165 pub type PUE = PreparedUpdateEntry;
166 pub type PUFOS = PieceUpdateFromOpSimple;
167 pub type PUO<NS,ZL> = PieceUpdateOp<NS,ZL>;
168 pub type PUOs = PieceUpdateOps;
169 pub type WRC = WhatResponseToClientOp;
170 #[allow(non_camel_case_types)] pub type PUE_P = PreparedUpdateEntry_Piece;
171
172 // utils.rs
173 pub use SVGSizeError as SvSE;