Trait OgcApiService

Source
pub trait OgcApiService: Clone + Send {
    type Config: ServiceConfig;
    type CliCommands: Subcommand + Parser + Debug;
    type CliArgs: Args + Debug;
    type Metrics;

    // Required methods
    fn create<'life0, 'life1, 'async_trait>(
        cfg: &'life0 Self::Config,
        core_cfg: &'life1 CoreServiceCfg,
    ) -> Pin<Box<dyn Future<Output = Self> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn metrics(&self) -> &'static Self::Metrics;

    // Provided methods
    fn landing_page_links(&self, _api_base: &str) -> Vec<ApiLink> { ... }
    fn conformance_classes(&self) -> Vec<String> { ... }
    fn collections(&self) -> Vec<CoreCollection> { ... }
    fn openapi_yaml(&self) -> Option<&str> { ... }
    fn add_metrics(&self, _prometheus: &Registry) { ... }
    fn cli_run<'life0, 'life1, 'async_trait>(
        &'life0 self,
        _cli: &'life1 ArgMatches,
    ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
       where Self: Sync + 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait { ... }
}

Required Associated Types§

Required Methods§

Source

fn create<'life0, 'life1, 'async_trait>( cfg: &'life0 Self::Config, core_cfg: &'life1 CoreServiceCfg, ) -> Pin<Box<dyn Future<Output = Self> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Create service from config

Source

fn metrics(&self) -> &'static Self::Metrics

Service metrics

Provided Methods§

Source

fn conformance_classes(&self) -> Vec<String>

Source

fn collections(&self) -> Vec<CoreCollection>

Source

fn openapi_yaml(&self) -> Option<&str>

Source

fn add_metrics(&self, _prometheus: &Registry)

Add metrics to Prometheus registry

Source

fn cli_run<'life0, 'life1, 'async_trait>( &'life0 self, _cli: &'life1 ArgMatches, ) -> Pin<Box<dyn Future<Output = bool> + Send + 'async_trait>>
where Self: Sync + 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Dyn Compatibility§

This trait is not dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.

Implementors§