grafos_registry/
reader.rs1extern crate alloc;
4use alloc::string::String;
5use alloc::vec::Vec;
6
7use grafos_std::error::Result;
8
9use crate::filter::RegistryFilter;
10use crate::region::RegistryRegion;
11use crate::registration::ServiceRegistration;
12use crate::watcher::RegistryWatcher;
13
14pub struct RegistryReader {
20 region: RegistryRegion,
21}
22
23impl RegistryReader {
24 pub fn new(region: RegistryRegion) -> Self {
26 RegistryReader { region }
27 }
28
29 pub fn lookup(&self, name: &str) -> Result<Vec<ServiceRegistration>> {
31 self.region.lookup(name)
32 }
33
34 pub fn lookup_one(&self, name: &str) -> Result<Option<ServiceRegistration>> {
36 self.region.lookup_one(name)
37 }
38
39 pub fn lookup_filtered(
41 &self,
42 name: &str,
43 filter: &RegistryFilter,
44 ) -> Result<Vec<ServiceRegistration>> {
45 self.region.lookup_filtered(name, filter)
46 }
47
48 pub fn list_services(&self) -> Result<Vec<String>> {
50 self.region.list_services()
51 }
52
53 pub fn watch(&self) -> RegistryWatcher {
55 RegistryWatcher::new(self.region.version())
56 }
57
58 pub fn version(&self) -> u64 {
60 self.region.version()
61 }
62}