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
57
58
59
60
61
62
63
64
65
66
67
68
69
70
//! Caching module for eure.
//!
//! This module provides caching infrastructure with support for multiple cache types.
//!
//! # Module Organization
//!
//! - **Core types** (always available): `CacheMeta`, `CacheKeyInfo`, path computation
//! - **Native I/O** (requires `native` feature): `fetch`, `FsStorage`, `gc`
//!
//! # Cache Layout
//!
//! The cache is stored in the platform-specific cache directory (via `directories` crate):
//! - macOS: `~/Library/Caches/dev.eure.eure/`
//! - Linux: `~/.cache/eure/`
//! - Windows: `C:\Users\<User>\AppData\Local\eure\eure\cache\`
//!
//! Override with `$EURE_CACHE_DIR` environment variable.
//!
//! Cache types are stored in subdirectories:
//!
//! ```text
//! ~/Library/Caches/dev.eure.eure/ # base_cache_dir() (macOS example)
//! https/ # https_cache_dir() - HTTPS fetched content
//! eure.dev/
//! a1/
//! b2/
//! a1b2c3d4-schema.eure # content
//! a1b2c3d4-schema.eure.meta # metadata (JSON)
//! # (future: compile/, build/, etc.)
//! ```
//!
//! # Example (native only)
//!
//! ```no_run
//! use url::Url;
//! use eure_env::cache::{fetch, CacheOptions};
//!
//! let url = Url::parse("https://eure.dev/v0.1.0/schemas/eure-schema.schema.eure").unwrap();
//! let result = fetch(&url, &CacheOptions::default()).unwrap();
//! println!("Content: {}", result.content);
//! println!("From cache: {}", result.from_cache);
//! ```
// Core types (pure computation, always available)
pub use ;
pub use ;
// Native I/O (requires filesystem and network)
pub use CacheError;
pub use ;
pub use ;
pub use ;