Skip to main content

Database

Trait Database 

Source
pub trait Database {
    // Required methods
    fn get_hash<'life0, 'async_trait>(
        &'life0 self,
        id: BuildId,
    ) -> Pin<Box<dyn Future<Output = Result<Option<BuildHash>, DatabaseError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn set_hash<'life0, 'async_trait>(
        &'life0 self,
        id: BuildId,
        hash: BuildHash,
    ) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn get_header_inputs<'life0, 'async_trait>(
        &'life0 self,
        id: BuildId,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<Arc<str>>, DatabaseError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn set_header_inputs<'life0, 'life1, 'async_trait>(
        &'life0 self,
        id: BuildId,
        inputs: &'life1 [Arc<str>],
    ) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
    fn get_outputs<'life0, 'async_trait>(
        &'life0 self,
    ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DatabaseError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait;
    fn set_output<'life0, 'life1, 'life2, 'async_trait>(
        &'life0 self,
        path: &'life1 str,
        source: Option<&'life2 str>,
    ) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait,
             'life2: 'async_trait;
    fn get_source<'life0, 'life1, 'async_trait>(
        &'life0 self,
        output: &'life1 str,
    ) -> Pin<Box<dyn Future<Output = Result<Option<String>, DatabaseError>> + Send + 'async_trait>>
       where Self: 'async_trait,
             'life0: 'async_trait,
             'life1: 'async_trait;
}
Expand description

A database.

Required Methods§

Source

fn get_hash<'life0, 'async_trait>( &'life0 self, id: BuildId, ) -> Pin<Box<dyn Future<Output = Result<Option<BuildHash>, DatabaseError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Gets a hash of a build.

Source

fn set_hash<'life0, 'async_trait>( &'life0 self, id: BuildId, hash: BuildHash, ) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Sets a hash of a build.

Source

fn get_header_inputs<'life0, 'async_trait>( &'life0 self, id: BuildId, ) -> Pin<Box<dyn Future<Output = Result<Vec<Arc<str>>, DatabaseError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Gets header inputs of a build.

Source

fn set_header_inputs<'life0, 'life1, 'async_trait>( &'life0 self, id: BuildId, inputs: &'life1 [Arc<str>], ) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Sets header inputs of a build.

Source

fn get_outputs<'life0, 'async_trait>( &'life0 self, ) -> Pin<Box<dyn Future<Output = Result<Vec<String>, DatabaseError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait,

Gets all outputs.

Source

fn set_output<'life0, 'life1, 'life2, 'async_trait>( &'life0 self, path: &'life1 str, source: Option<&'life2 str>, ) -> Pin<Box<dyn Future<Output = Result<(), DatabaseError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait, 'life2: 'async_trait,

Sets an output and its source in a source map.

Source

fn get_source<'life0, 'life1, 'async_trait>( &'life0 self, output: &'life1 str, ) -> Pin<Box<dyn Future<Output = Result<Option<String>, DatabaseError>> + Send + 'async_trait>>
where Self: 'async_trait, 'life0: 'async_trait, 'life1: 'async_trait,

Gets a source of an output in a source map.

Dyn Compatibility§

This trait is dyn compatible.

In older versions of Rust, dyn compatibility was called "object safety".

Implementors§