Skip to content

Commit 1e389de

Browse files
authored
refactor: alias sys traits (#77)
1 parent e835461 commit 1e389de

File tree

3 files changed

+75
-189
lines changed

3 files changed

+75
-189
lines changed

rs_lib/src/cache.rs

Lines changed: 9 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -7,21 +7,14 @@ use std::borrow::Cow;
77
use std::io::ErrorKind;
88
use std::path::PathBuf;
99
use std::time::SystemTime;
10-
use sys_traits::FsCreateDirAll;
11-
use sys_traits::FsMetadata;
12-
use sys_traits::FsOpen;
13-
use sys_traits::FsRead;
14-
use sys_traits::FsRemoveFile;
15-
use sys_traits::FsRename;
16-
use sys_traits::SystemRandom;
17-
use sys_traits::SystemTimeNow;
18-
use sys_traits::ThreadSleep;
1910
use thiserror::Error;
2011
use url::Url;
2112

2213
use crate::common::base_url_to_filename_parts;
2314
use crate::common::checksum;
2415
use crate::common::HeadersMap;
16+
use crate::global::GlobalHttpCacheSys;
17+
use crate::local::LocalHttpCacheSys;
2518
use crate::sync::MaybeSend;
2619
use crate::sync::MaybeSync;
2720
use crate::GlobalHttpCacheRc;
@@ -205,82 +198,29 @@ pub trait HttpCache: MaybeSend + MaybeSync + std::fmt::Debug {
205198
}
206199

207200
#[derive(Debug, Clone)]
208-
pub enum GlobalOrLocalHttpCache<
209-
Sys: FsCreateDirAll
210-
+ FsMetadata
211-
+ FsOpen
212-
+ FsRemoveFile
213-
+ FsRename
214-
+ ThreadSleep
215-
+ SystemRandom
216-
+ SystemTimeNow
217-
+ std::fmt::Debug
218-
+ FsRead
219-
+ Clone
220-
+ MaybeSend
221-
+ MaybeSync,
222-
> {
201+
pub enum GlobalOrLocalHttpCache<Sys: GlobalHttpCacheSys + LocalHttpCacheSys> {
223202
Global(GlobalHttpCacheRc<Sys>),
224203
Local(LocalHttpCacheRc<Sys>),
225204
}
226205

227-
impl<
228-
Sys: FsCreateDirAll
229-
+ FsMetadata
230-
+ FsOpen
231-
+ FsRemoveFile
232-
+ FsRename
233-
+ ThreadSleep
234-
+ SystemRandom
235-
+ SystemTimeNow
236-
+ std::fmt::Debug
237-
+ FsRead
238-
+ Clone
239-
+ MaybeSend
240-
+ MaybeSync,
241-
> From<GlobalHttpCacheRc<Sys>> for GlobalOrLocalHttpCache<Sys>
206+
impl<Sys: GlobalHttpCacheSys + LocalHttpCacheSys> From<GlobalHttpCacheRc<Sys>>
207+
for GlobalOrLocalHttpCache<Sys>
242208
{
243209
fn from(global: GlobalHttpCacheRc<Sys>) -> Self {
244210
Self::Global(global)
245211
}
246212
}
247213

248-
impl<
249-
Sys: FsCreateDirAll
250-
+ FsMetadata
251-
+ FsOpen
252-
+ FsRemoveFile
253-
+ FsRename
254-
+ ThreadSleep
255-
+ SystemRandom
256-
+ SystemTimeNow
257-
+ std::fmt::Debug
258-
+ FsRead
259-
+ Clone
260-
+ MaybeSend
261-
+ MaybeSync,
262-
> From<LocalHttpCacheRc<Sys>> for GlobalOrLocalHttpCache<Sys>
214+
impl<Sys: GlobalHttpCacheSys + LocalHttpCacheSys> From<LocalHttpCacheRc<Sys>>
215+
for GlobalOrLocalHttpCache<Sys>
263216
{
264217
fn from(local: LocalHttpCacheRc<Sys>) -> Self {
265218
Self::Local(local)
266219
}
267220
}
268221

269-
impl<
270-
Sys: FsCreateDirAll
271-
+ FsMetadata
272-
+ FsOpen
273-
+ FsRemoveFile
274-
+ FsRename
275-
+ ThreadSleep
276-
+ SystemRandom
277-
+ SystemTimeNow
278-
+ std::fmt::Debug
279-
+ FsRead
280-
+ Clone
281-
+ MaybeSend
282-
+ MaybeSync,
283-
> HttpCache for GlobalOrLocalHttpCache<Sys>
222+
impl<Sys: GlobalHttpCacheSys + LocalHttpCacheSys> HttpCache
223+
for GlobalOrLocalHttpCache<Sys>
284224
{
285225
fn read_headers(
286226
&self,

rs_lib/src/global/mod.rs

Lines changed: 34 additions & 34 deletions
Original file line numberDiff line numberDiff line change
@@ -31,35 +31,50 @@ use crate::sync::MaybeSync;
3131

3232
mod cache_file;
3333

34-
#[allow(clippy::disallowed_types)]
35-
pub type GlobalHttpCacheRc<TSys> = crate::sync::MaybeArc<GlobalHttpCache<TSys>>;
34+
pub trait GlobalHttpCacheSys:
35+
FsCreateDirAll
36+
+ FsMetadata
37+
+ FsOpen
38+
+ FsRead
39+
+ FsRemoveFile
40+
+ FsRename
41+
+ ThreadSleep
42+
+ SystemRandom
43+
+ SystemTimeNow
44+
+ std::fmt::Debug
45+
+ MaybeSend
46+
+ MaybeSync
47+
+ Clone
48+
{
49+
}
3650

37-
#[derive(Debug)]
38-
pub struct GlobalHttpCache<
39-
Sys: FsCreateDirAll
51+
impl<T> GlobalHttpCacheSys for T where
52+
T: FsCreateDirAll
4053
+ FsMetadata
4154
+ FsOpen
55+
+ FsRead
4256
+ FsRemoveFile
4357
+ FsRename
4458
+ ThreadSleep
4559
+ SystemRandom
46-
+ Clone,
47-
> {
60+
+ SystemTimeNow
61+
+ std::fmt::Debug
62+
+ MaybeSend
63+
+ MaybeSync
64+
+ Clone
65+
{
66+
}
67+
68+
#[allow(clippy::disallowed_types)]
69+
pub type GlobalHttpCacheRc<TSys> = crate::sync::MaybeArc<GlobalHttpCache<TSys>>;
70+
71+
#[derive(Debug)]
72+
pub struct GlobalHttpCache<Sys: GlobalHttpCacheSys> {
4873
path: PathBuf,
4974
pub(crate) sys: Sys,
5075
}
5176

52-
impl<
53-
Sys: FsCreateDirAll
54-
+ FsMetadata
55-
+ FsOpen
56-
+ FsRemoveFile
57-
+ FsRename
58-
+ ThreadSleep
59-
+ SystemRandom
60-
+ Clone,
61-
> GlobalHttpCache<Sys>
62-
{
77+
impl<Sys: GlobalHttpCacheSys> GlobalHttpCache<Sys> {
6378
pub fn new(sys: Sys, path: PathBuf) -> Self {
6479
#[cfg(not(feature = "wasm"))]
6580
assert!(path.is_absolute());
@@ -83,22 +98,7 @@ impl<
8398
}
8499
}
85100

86-
impl<
87-
TSys: FsCreateDirAll
88-
+ FsMetadata
89-
+ FsOpen
90-
+ FsRead
91-
+ FsRemoveFile
92-
+ FsRename
93-
+ ThreadSleep
94-
+ SystemRandom
95-
+ SystemTimeNow
96-
+ std::fmt::Debug
97-
+ MaybeSend
98-
+ MaybeSync
99-
+ Clone,
100-
> HttpCache for GlobalHttpCache<TSys>
101-
{
101+
impl<TSys: GlobalHttpCacheSys> HttpCache for GlobalHttpCache<TSys> {
102102
fn cache_item_key<'a>(
103103
&self,
104104
url: &'a Url,

rs_lib/src/local.rs

Lines changed: 32 additions & 86 deletions
Original file line numberDiff line numberDiff line change
@@ -41,11 +41,25 @@ use super::Checksum;
4141
use super::HttpCache;
4242
use super::HttpCacheItemKey;
4343

44-
/// A vendor/ folder http cache for the lsp that provides functionality
45-
/// for doing a reverse mapping.
46-
#[derive(Debug)]
47-
pub struct LocalLspHttpCache<
48-
TSys: FsCreateDirAll
44+
pub trait LocalHttpCacheSys:
45+
FsCreateDirAll
46+
+ FsMetadata
47+
+ FsOpen
48+
+ FsRead
49+
+ FsRemoveFile
50+
+ FsRename
51+
+ ThreadSleep
52+
+ SystemRandom
53+
+ SystemTimeNow
54+
+ MaybeSend
55+
+ MaybeSync
56+
+ std::fmt::Debug
57+
+ Clone
58+
{
59+
}
60+
61+
impl<T> LocalHttpCacheSys for T where
62+
T: FsCreateDirAll
4963
+ FsMetadata
5064
+ FsOpen
5165
+ FsRead
@@ -57,27 +71,18 @@ pub struct LocalLspHttpCache<
5771
+ MaybeSend
5872
+ MaybeSync
5973
+ std::fmt::Debug
60-
+ Clone,
61-
> {
74+
+ Clone
75+
{
76+
}
77+
78+
/// A vendor/ folder http cache for the lsp that provides functionality
79+
/// for doing a reverse mapping.
80+
#[derive(Debug)]
81+
pub struct LocalLspHttpCache<TSys: LocalHttpCacheSys> {
6282
cache: LocalHttpCache<TSys>,
6383
}
6484

65-
impl<
66-
TSys: FsCreateDirAll
67-
+ FsMetadata
68-
+ FsOpen
69-
+ FsRead
70-
+ FsRemoveFile
71-
+ FsRename
72-
+ ThreadSleep
73-
+ SystemRandom
74-
+ SystemTimeNow
75-
+ MaybeSend
76-
+ MaybeSync
77-
+ std::fmt::Debug
78-
+ Clone,
79-
> LocalLspHttpCache<TSys>
80-
{
85+
impl<TSys: LocalHttpCacheSys> LocalLspHttpCache<TSys> {
8186
pub fn new(path: PathBuf, global_cache: GlobalHttpCacheRc<TSys>) -> Self {
8287
#[cfg(not(feature = "wasm"))]
8388
assert!(path.is_absolute());
@@ -185,22 +190,7 @@ impl<
185190
}
186191
}
187192

188-
impl<
189-
TSys: FsCreateDirAll
190-
+ FsMetadata
191-
+ FsOpen
192-
+ FsRead
193-
+ FsRemoveFile
194-
+ FsRename
195-
+ ThreadSleep
196-
+ SystemRandom
197-
+ SystemTimeNow
198-
+ MaybeSend
199-
+ MaybeSync
200-
+ std::fmt::Debug
201-
+ Clone,
202-
> HttpCache for LocalLspHttpCache<TSys>
203-
{
193+
impl<TSys: LocalHttpCacheSys> HttpCache for LocalLspHttpCache<TSys> {
204194
fn cache_item_key<'a>(
205195
&self,
206196
url: &'a Url,
@@ -255,43 +245,14 @@ impl<
255245
pub type LocalHttpCacheRc<TSys> = crate::sync::MaybeArc<LocalHttpCache<TSys>>;
256246

257247
#[derive(Debug)]
258-
pub struct LocalHttpCache<
259-
TSys: FsCreateDirAll
260-
+ FsMetadata
261-
+ FsOpen
262-
+ FsRead
263-
+ FsRemoveFile
264-
+ FsRename
265-
+ ThreadSleep
266-
+ SystemRandom
267-
+ SystemTimeNow
268-
+ MaybeSend
269-
+ MaybeSync
270-
+ std::fmt::Debug
271-
+ Clone,
272-
> {
248+
pub struct LocalHttpCache<TSys: LocalHttpCacheSys> {
273249
path: PathBuf,
274250
manifest: LocalCacheManifest<TSys>,
275251
global_cache: GlobalHttpCacheRc<TSys>,
276252
allow_global_to_local: GlobalToLocalCopy,
277253
}
278254

279-
impl<
280-
TSys: FsCreateDirAll
281-
+ FsMetadata
282-
+ FsOpen
283-
+ FsRead
284-
+ FsRemoveFile
285-
+ FsRename
286-
+ ThreadSleep
287-
+ SystemRandom
288-
+ SystemTimeNow
289-
+ MaybeSend
290-
+ MaybeSync
291-
+ std::fmt::Debug
292-
+ Clone,
293-
> LocalHttpCache<TSys>
294-
{
255+
impl<TSys: LocalHttpCacheSys> LocalHttpCache<TSys> {
295256
pub fn new(
296257
path: PathBuf,
297258
global_cache: GlobalHttpCacheRc<TSys>,
@@ -373,22 +334,7 @@ impl<
373334
}
374335
}
375336

376-
impl<
377-
TSys: FsCreateDirAll
378-
+ FsMetadata
379-
+ FsOpen
380-
+ FsRead
381-
+ FsRemoveFile
382-
+ FsRename
383-
+ ThreadSleep
384-
+ SystemRandom
385-
+ SystemTimeNow
386-
+ MaybeSend
387-
+ MaybeSync
388-
+ std::fmt::Debug
389-
+ Clone,
390-
> HttpCache for LocalHttpCache<TSys>
391-
{
337+
impl<TSys: LocalHttpCacheSys> HttpCache for LocalHttpCache<TSys> {
392338
fn cache_item_key<'a>(
393339
&self,
394340
url: &'a Url,

0 commit comments

Comments
 (0)