Skip to main content

read_url/internal/
registered.rs

1use super::metadata::*;
2
3use {
4    kutil::io::reader::*,
5    std::{collections::*, sync::*},
6};
7
8//
9// RegisteredInternalUrl
10//
11
12/// Global [InternalUrl](super::internal_url::InternalUrl) registry.
13pub static GLOBAL_INTERNAL_URL_REGISTRY: LazyLock<InternalUrlRegistry> =
14    LazyLock::new(|| RegisteredInternalUrls::default().into());
15
16/// [InternalUrl](super::internal_url::InternalUrl) registry.
17pub type InternalUrlRegistry = Mutex<RegisteredInternalUrls>;
18
19/// [InternalUrl](super::internal_url::InternalUrl) map.
20pub type RegisteredInternalUrls = HashMap<String, RegisteredInternalUrl>;
21
22/// Registered [InternalUrl](super::internal_url::InternalUrl).
23#[derive(Clone, Debug)]
24pub struct RegisteredInternalUrl {
25    /// Metadata.
26    pub metadata: InternalUrlMetadata,
27
28    /// Content.
29    pub content: ReadableBuffer,
30}
31
32impl RegisteredInternalUrl {
33    /// Constructor
34    pub fn new(slashable: bool, base_path: Option<String>, format: Option<String>, content: &[u8]) -> Self {
35        Self { metadata: InternalUrlMetadata::new(slashable, base_path, format), content: ReadableBuffer::new(content) }
36    }
37}