Skip to main content

OperationDeclaration

Trait OperationDeclaration 

Source
pub trait OperationDeclaration: Portable {
    type Response: Portable;
    type Input: Direction;
    type Output: Direction;

    const ID: &'static str;
    const VERSION: u32;
    const POLICY: OperationPolicy;
    const DESCRIPTION: &'static str = "";
    const VISIBILITY: Visibility = Visibility::Private;
    const REPLAY: ReplaySafety = ReplaySafety::Unknown;
    const GRPC: Option<Grpc> = None;

    // Provided methods
    fn grant(&self) -> Option<Grant> { ... }
    fn key(&self) -> Option<CacheKey> { ... }
}

Required Associated Constants§

Provided Associated Constants§

Source

const DESCRIPTION: &'static str = ""

Source

const VISIBILITY: Visibility = Visibility::Private

Source

const REPLAY: ReplaySafety = ReplaySafety::Unknown

Source

const GRPC: Option<Grpc> = None

Required Associated Types§

Provided Methods§

Source

fn grant(&self) -> Option<Grant>

Source

fn key(&self) -> Option<CacheKey>

Dyn Compatibility§

This trait is not dyn compatible.

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

Implementors§

Source§

impl OperationDeclaration for AbandonFile

Source§

const ID: &'static str = "storage.abandon_file"

Source§

const VERSION: u32 = 1

Source§

const POLICY: OperationPolicy = POLICY

Source§

const VISIBILITY: Visibility = Visibility::Host

Source§

const REPLAY: ReplaySafety = ReplaySafety::Idempotent

Source§

type Response = FileProgress

Source§

type Input = NoStream

Source§

type Output = NoStream

Source§

impl OperationDeclaration for Activation

Source§

impl OperationDeclaration for AppendFile

Source§

const ID: &'static str = "storage.append_file"

Source§

const VERSION: u32 = 1

Source§

const POLICY: OperationPolicy = POLICY

Source§

const VISIBILITY: Visibility = Visibility::Host

Source§

const REPLAY: ReplaySafety = ReplaySafety::Idempotent

Source§

type Response = FileProducer

Source§

type Input = NoStream

Source§

type Output = NoStream

Source§

impl OperationDeclaration for Cancel

Source§

const ID: &'static str = "host.operations.cancel"

Source§

const VERSION: u32 = 1

Source§

const POLICY: OperationPolicy = crate::operations::host::POLICY

Source§

const DESCRIPTION: &'static str = "Request cancellation of an operation instance the caller submitted"

Source§

const VISIBILITY: Visibility = Visibility::Shared

Source§

const GRPC: Option<Grpc>

Source§

type Response = InstanceState

Source§

type Input = NoStream

Source§

type Output = NoStream

Source§

impl OperationDeclaration for Catalog

Source§

const ID: &'static str = "host.catalog"

Source§

const VERSION: u32 = 1

Source§

const POLICY: OperationPolicy = POLICY

Source§

const DESCRIPTION: &'static str = "Page live operation contracts or the schemas, streams and objects storage holds durably"

Source§

const VISIBILITY: Visibility = Visibility::Shared

Source§

const GRPC: Option<Grpc>

Source§

type Response = CatalogPage

Source§

type Input = NoStream

Source§

type Output = NoStream

Source§

impl OperationDeclaration for Control

Source§

const ID: &'static str = "harmos.observe"

Source§

const VERSION: u32 = 1

Source§

const POLICY: OperationPolicy = POLICY

Source§

const VISIBILITY: Visibility = Visibility::Host

Source§

const REPLAY: ReplaySafety = ReplaySafety::Idempotent

Source§

type Response = ()

Source§

type Input = NoStream

Source§

type Output = NoStream

Source§

impl OperationDeclaration for CreateFile

Source§

const ID: &'static str = "storage.create_file"

Source§

const VERSION: u32 = 1

Source§

const POLICY: OperationPolicy = POLICY

Source§

const VISIBILITY: Visibility = Visibility::Host

Source§

const REPLAY: ReplaySafety = ReplaySafety::Idempotent

Source§

type Response = FileProducer

Source§

type Input = NoStream

Source§

type Output = NoStream

Source§

impl OperationDeclaration for DeleteFile

Source§

const ID: &'static str = "storage.delete_file"

Source§

const VERSION: u32 = 1

Source§

const POLICY: OperationPolicy = POLICY

Source§

const VISIBILITY: Visibility = Visibility::Host

Source§

const REPLAY: ReplaySafety = ReplaySafety::Idempotent

Source§

type Response = StagedFile

Source§

type Input = NoStream

Source§

type Output = NoStream

Source§

impl OperationDeclaration for FinishFile

Source§

const ID: &'static str = "storage.finish_file"

Source§

const VERSION: u32 = 1

Source§

const POLICY: OperationPolicy = POLICY

Source§

const VISIBILITY: Visibility = Visibility::Host

Source§

const REPLAY: ReplaySafety = ReplaySafety::Idempotent

Source§

type Response = FileReference

Source§

type Input = NoStream

Source§

type Output = NoStream

Source§

impl OperationDeclaration for FollowFile

Source§

const ID: &'static str = "storage.follow_file"

Source§

const VERSION: u32 = 1

Source§

const POLICY: OperationPolicy = STREAM_POLICY

Source§

const VISIBILITY: Visibility = Visibility::Host

Source§

type Response = FileProgress

Source§

type Input = NoStream

Source§

type Output = Stream<FileBatch>

Source§

impl OperationDeclaration for FollowObjects

Source§

const ID: &'static str = "storage.follow_objects"

Source§

const VERSION: u32 = 1

Source§

const POLICY: OperationPolicy = STREAM_POLICY

Source§

const VISIBILITY: Visibility = Visibility::Host

Source§

type Response = StorageCursor

Source§

type Input = NoStream

Source§

type Output = Stream<ObjectEntry>

Source§

impl OperationDeclaration for FollowRecords

Source§

const ID: &'static str = "storage.follow_records"

Source§

const VERSION: u32 = 1

Source§

const POLICY: OperationPolicy = super::STREAM_POLICY

Source§

const VISIBILITY: Visibility = crate::operations::Visibility::Shared

Source§

const GRPC: Option<Grpc>

Source§

type Response = StorageCursor

Source§

type Input = NoStream

Source§

type Output = Stream<Followed>

Source§

impl OperationDeclaration for FollowStream

Source§

const ID: &'static str = "storage.follow_stream"

Source§

const VERSION: u32 = 1

Source§

const POLICY: OperationPolicy = STREAM_POLICY

Source§

const VISIBILITY: Visibility = Visibility::Host

Source§

type Response = StorageCursor

Source§

type Input = NoStream

Source§

type Output = Stream<StoredRow>

Source§

impl OperationDeclaration for Initialize

Source§

const ID: &'static str = "harmos.initialize"

Source§

const VERSION: u32 = 1

Source§

const POLICY: OperationPolicy = POLICY

Source§

type Response = ()

Source§

type Input = NoStream

Source§

type Output = NoStream

Source§

impl OperationDeclaration for Publish

Source§

const ID: &'static str = "host.publish"

Source§

const VERSION: u32 = 1

Source§

const POLICY: OperationPolicy = crate::operations::host::POLICY

Source§

const VISIBILITY: Visibility = Visibility::Shared

Source§

type Response = ()

Source§

type Input = NoStream

Source§

type Output = NoStream

Source§

impl OperationDeclaration for Query

Source§

const ID: &'static str = "storage.query"

Source§

const VERSION: u32 = 1

Source§

const POLICY: OperationPolicy = IO_POLICY

Source§

const VISIBILITY: Visibility = Visibility::Shared

Source§

const REPLAY: ReplaySafety = ReplaySafety::Idempotent

Source§

const GRPC: Option<Grpc>

Source§

type Response = QueryCompletion

Source§

type Input = NoStream

Source§

type Output = Stream<QueryOutput>

Source§

impl OperationDeclaration for ReadFile

Source§

const ID: &'static str = "storage.read_file"

Source§

const VERSION: u32 = 1

Source§

const POLICY: OperationPolicy = IO_POLICY

Source§

const VISIBILITY: Visibility = Visibility::Shared

Source§

const REPLAY: ReplaySafety = ReplaySafety::Idempotent

Source§

const GRPC: Option<Grpc>

Source§

type Response = FileCompletion

Source§

type Input = NoStream

Source§

type Output = Stream<FileBatch>

Source§

impl OperationDeclaration for ResumeFile

Source§

const ID: &'static str = "storage.resume_file"

Source§

const VERSION: u32 = 1

Source§

const POLICY: OperationPolicy = POLICY

Source§

const VISIBILITY: Visibility = Visibility::Host

Source§

const REPLAY: ReplaySafety = ReplaySafety::Idempotent

Source§

type Response = FileProducer

Source§

type Input = NoStream

Source§

type Output = NoStream

Source§

impl OperationDeclaration for Shutdown

Source§

const ID: &'static str = "harmos.shutdown"

Source§

const VERSION: u32 = 1

Source§

const POLICY: OperationPolicy = POLICY

Source§

type Response = ()

Source§

type Input = NoStream

Source§

type Output = NoStream

Source§

impl OperationDeclaration for Status

Source§

const ID: &'static str = "host.operations.status"

Source§

const VERSION: u32 = 1

Source§

const POLICY: OperationPolicy = crate::operations::host::POLICY

Source§

const DESCRIPTION: &'static str = "Report the status of an operation instance the caller submitted"

Source§

const VISIBILITY: Visibility = Visibility::Shared

Source§

const GRPC: Option<Grpc>

Source§

type Response = InstanceState

Source§

type Input = NoStream

Source§

type Output = NoStream

Source§

impl OperationDeclaration for StorageStatus

Source§

const ID: &'static str = "storage.status"

Source§

const VERSION: u32 = 1

Source§

const POLICY: OperationPolicy = POLICY

Source§

const VISIBILITY: Visibility = Visibility::Host

Source§

const REPLAY: ReplaySafety = ReplaySafety::Idempotent

Source§

type Response = StorageInfo

Source§

type Input = NoStream

Source§

type Output = NoStream

Source§

impl OperationDeclaration for Watch

Source§

const ID: &'static str = "host.operations.watch"

Source§

const VERSION: u32 = 1

Source§

const POLICY: OperationPolicy = WATCH_POLICY

Source§

const DESCRIPTION: &'static str = "Stream the status changes of an operation instance the caller submitted until it settles"

Source§

const VISIBILITY: Visibility = Visibility::Shared

Source§

const GRPC: Option<Grpc>

Source§

type Response = InstanceState

Source§

type Input = NoStream

Source§

type Output = Stream<InstanceState>

Source§

impl OperationDeclaration for WriteFile

Source§

const ID: &'static str = "storage.write_file"

Source§

const VERSION: u32 = 1

Source§

const POLICY: OperationPolicy = IO_POLICY

Source§

const VISIBILITY: Visibility = Visibility::Shared

Source§

const REPLAY: ReplaySafety = ReplaySafety::Unknown

Source§

const GRPC: Option<Grpc>

Source§

type Response = FileReference

Source§

type Input = Stream<FileBatch>

Source§

type Output = NoStream

Source§

impl OperationDeclaration for WriteObjects

Source§

const ID: &'static str = "storage.write_objects"

Source§

const VERSION: u32 = 1

Source§

const POLICY: OperationPolicy = IO_POLICY

Source§

const VISIBILITY: Visibility = Visibility::Shared

Source§

const REPLAY: ReplaySafety = ReplaySafety::Unknown

Source§

const GRPC: Option<Grpc>

Source§

type Response = WriteCompletion

Source§

type Input = Stream<DataBatch>

Source§

type Output = Stream<WriteReceipt>

Source§

impl OperationDeclaration for WriteRecords

Source§

const ID: &'static str = "storage.write_records"

Source§

const VERSION: u32 = 1

Source§

const POLICY: OperationPolicy = IO_POLICY

Source§

const VISIBILITY: Visibility = Visibility::Shared

Source§

const REPLAY: ReplaySafety = ReplaySafety::Unknown

Source§

const GRPC: Option<Grpc>

Source§

type Response = WriteCompletion

Source§

type Input = Stream<DataBatch>

Source§

type Output = Stream<WriteReceipt>

Source§

impl OperationDeclaration for WriteSchema

Source§

const ID: &'static str = "storage.write_schema"

Source§

const VERSION: u32 = 1

Source§

const POLICY: OperationPolicy = POLICY

Source§

const VISIBILITY: Visibility = Visibility::Host

Source§

const REPLAY: ReplaySafety = ReplaySafety::Idempotent

Source§

type Response = StorageCursor

Source§

type Input = NoStream

Source§

type Output = NoStream

Source§

impl OperationDeclaration for WriteStreams

Source§

const ID: &'static str = "storage.write_streams"

Source§

const VERSION: u32 = 1

Source§

const POLICY: OperationPolicy = IO_POLICY

Source§

const VISIBILITY: Visibility = Visibility::Shared

Source§

const REPLAY: ReplaySafety = ReplaySafety::Unknown

Source§

const GRPC: Option<Grpc>

Source§

type Response = WriteCompletion

Source§

type Input = Stream<DataBatch>

Source§

type Output = Stream<WriteReceipt>

Source§

impl<L> OperationDeclaration for Delivery<L>
where L: Listener,

Source§

const ID: &'static str = L::CALLBACK

Source§

const VERSION: u32 = 1

Source§

const POLICY: OperationPolicy = L::POLICY

Source§

const VISIBILITY: Visibility = crate::operations::Visibility::Shared

Source§

type Response = ()

Source§

type Input = NoStream

Source§

type Output = NoStream