Skip to main content

OperationDeclaration

Trait OperationDeclaration 

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

    const ID: &'static str;
    const POLICY: OperationPolicy;
    const DESCRIPTION: &'static str = "";
    const VISIBILITY: Visibility = Visibility::Private;
    const REPLAY: ReplaySafety = ReplaySafety::Unknown;
    const GRPC: Option<Grpc> = None;
    const OPERATIONS: &'static [WireDeclaration] = _;

    // Provided methods
    fn definition() -> OperationDefinition { ... }
    fn grant(_request: &Self::Request) -> Option<Grant> { ... }
    fn key(_request: &Self::Request) -> 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

Source

const OPERATIONS: &'static [WireDeclaration] = _

Required Associated Types§

Provided Methods§

Source

fn definition() -> OperationDefinition

Source

fn grant(_request: &Self::Request) -> Option<Grant>

Source

fn key(_request: &Self::Request) -> 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 OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = POLICY

Source§

const VISIBILITY: Visibility = crate::operations::Visibility::Host

Source§

const REPLAY: ReplaySafety = ReplaySafety::Idempotent

Source§

type Request = AbandonFile

Source§

type Response = FileProgress

Source§

type Input = NoStream

Source§

type Output = NoStream

Source§

impl OperationDeclaration for AppendFile

Source§

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

Source§

const OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = POLICY

Source§

const VISIBILITY: Visibility = crate::operations::Visibility::Host

Source§

const REPLAY: ReplaySafety = ReplaySafety::Idempotent

Source§

type Request = AppendFile

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 OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = super::POLICY

Source§

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

Source§

const GRPC: Option<Grpc>

Source§

type Request = Cancel

Source§

type Response = InstanceState

Source§

type Input = NoStream

Source§

type Output = NoStream

Source§

impl OperationDeclaration for CaptureFile

Source§

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

Source§

const OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = IO_POLICY

Source§

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

Source§

const REPLAY: ReplaySafety = ReplaySafety::Unknown

Source§

const GRPC: Option<Grpc>

Source§

type Request = CaptureFile

Source§

type Response = FileReference

Source§

type Input = NoStream

Source§

type Output = NoStream

Source§

impl OperationDeclaration for Catalog

Source§

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

Source§

const OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = super::POLICY

Source§

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

Source§

const GRPC: Option<Grpc>

Source§

type Request = Catalog

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 POLICY: OperationPolicy = POLICY

Source§

const VISIBILITY: Visibility = Visibility::Host

Source§

const REPLAY: ReplaySafety = ReplaySafety::Idempotent

Source§

type Request = ControlRequest

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 OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = POLICY

Source§

const VISIBILITY: Visibility = crate::operations::Visibility::Host

Source§

const REPLAY: ReplaySafety = ReplaySafety::Idempotent

Source§

type Request = CreateFile

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 OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = POLICY

Source§

const VISIBILITY: Visibility = crate::operations::Visibility::Host

Source§

const REPLAY: ReplaySafety = ReplaySafety::Idempotent

Source§

type Request = DeleteFile

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 OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = POLICY

Source§

const VISIBILITY: Visibility = crate::operations::Visibility::Host

Source§

const REPLAY: ReplaySafety = ReplaySafety::Idempotent

Source§

type Request = FinishFile

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 OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = IO_POLICY

Source§

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

Source§

const GRPC: Option<Grpc>

Source§

type Request = FollowFile

Source§

type Response = FileCompletion

Source§

type Input = NoStream

Source§

type Output = Stream<FileEvent>

Source§

impl OperationDeclaration for FollowObjects

Source§

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

Source§

const OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = STREAM_POLICY

Source§

const VISIBILITY: Visibility = crate::operations::Visibility::Host

Source§

type Request = FollowObjects

Source§

type Response = StorageCursor

Source§

type Input = NoStream

Source§

type Output = Stream<ObjectEntry>

Source§

impl OperationDeclaration for FollowProduction

Source§

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

Source§

const OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = IO_POLICY

Source§

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

Source§

const REPLAY: ReplaySafety = ReplaySafety::Unknown

Source§

const GRPC: Option<Grpc>

Source§

type Request = FollowProduction

Source§

type Response = FileProgress

Source§

type Input = NoStream

Source§

type Output = Stream<FileBatch>

Source§

impl OperationDeclaration for FollowRecords

Source§

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

Source§

const OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = super::STREAM_POLICY

Source§

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

Source§

const GRPC: Option<Grpc>

Source§

type Request = FollowRecords

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 OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = STREAM_POLICY

Source§

const VISIBILITY: Visibility = crate::operations::Visibility::Host

Source§

type Request = FollowStream

Source§

type Response = StorageCursor

Source§

type Input = NoStream

Source§

type Output = Stream<StoredRow>

Source§

impl OperationDeclaration for HashFile

Source§

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

Source§

const OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = IO_POLICY

Source§

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

Source§

const REPLAY: ReplaySafety = ReplaySafety::Idempotent

Source§

const GRPC: Option<Grpc>

Source§

type Request = HashFile

Source§

type Response = FileHash

Source§

type Input = NoStream

Source§

type Output = NoStream

Source§

impl OperationDeclaration for Initialize

Source§

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

Source§

const OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = super::POLICY

Source§

type Request = Initialize

Source§

type Response = ()

Source§

type Input = NoStream

Source§

type Output = NoStream

Source§

impl OperationDeclaration for ListDirectory

Source§

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

Source§

const OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = IO_POLICY

Source§

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

Source§

const REPLAY: ReplaySafety = ReplaySafety::Idempotent

Source§

const GRPC: Option<Grpc>

Source§

type Request = ListDirectory

Source§

type Response = DirectoryCompletion

Source§

type Input = NoStream

Source§

type Output = Stream<DirectoryEntry>

Source§

impl OperationDeclaration for Publish

Source§

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

Source§

const OPERATIONS: &'static [WireDeclaration]

Source§

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

Source§

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

Source§

type Request = Publish

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 OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = IO_POLICY

Source§

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

Source§

const REPLAY: ReplaySafety = ReplaySafety::Idempotent

Source§

const GRPC: Option<Grpc>

Source§

type Request = Query

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 OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = IO_POLICY

Source§

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

Source§

const REPLAY: ReplaySafety = ReplaySafety::Idempotent

Source§

const GRPC: Option<Grpc>

Source§

type Request = ReadFile

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 OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = POLICY

Source§

const VISIBILITY: Visibility = crate::operations::Visibility::Host

Source§

const REPLAY: ReplaySafety = ReplaySafety::Idempotent

Source§

type Request = ResumeFile

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 OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = super::POLICY

Source§

type Request = Shutdown

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 OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = super::POLICY

Source§

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

Source§

const GRPC: Option<Grpc>

Source§

type Request = Status

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 OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = POLICY

Source§

const VISIBILITY: Visibility = crate::operations::Visibility::Host

Source§

const REPLAY: ReplaySafety = ReplaySafety::Idempotent

Source§

type Request = StorageStatus

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 OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = super::WATCH_POLICY

Source§

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

Source§

const GRPC: Option<Grpc>

Source§

type Request = Watch

Source§

type Response = InstanceState

Source§

type Input = NoStream

Source§

type Output = Stream<InstanceState>

Source§

impl OperationDeclaration for WatchDirectory

Source§

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

Source§

const OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = IO_POLICY

Source§

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

Source§

const REPLAY: ReplaySafety = ReplaySafety::Idempotent

Source§

const GRPC: Option<Grpc>

Source§

type Request = WatchDirectory

Source§

type Response = DirectoryCompletion

Source§

type Input = NoStream

Source§

type Output = Stream<DirectoryEvent>

Source§

impl OperationDeclaration for WriteFile

Source§

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

Source§

const OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = IO_POLICY

Source§

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

Source§

const REPLAY: ReplaySafety = ReplaySafety::Unknown

Source§

const GRPC: Option<Grpc>

Source§

type Request = WriteFile

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 OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = IO_POLICY

Source§

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

Source§

const REPLAY: ReplaySafety = ReplaySafety::Unknown

Source§

const GRPC: Option<Grpc>

Source§

type Request = WriteObjects

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 OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = IO_POLICY

Source§

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

Source§

const REPLAY: ReplaySafety = ReplaySafety::Unknown

Source§

const GRPC: Option<Grpc>

Source§

type Request = WriteRecords

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 OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = POLICY

Source§

const VISIBILITY: Visibility = crate::operations::Visibility::Host

Source§

const REPLAY: ReplaySafety = ReplaySafety::Idempotent

Source§

type Request = WriteSchema

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 OPERATIONS: &'static [WireDeclaration]

Source§

const POLICY: OperationPolicy = IO_POLICY

Source§

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

Source§

const REPLAY: ReplaySafety = ReplaySafety::Unknown

Source§

const GRPC: Option<Grpc>

Source§

type Request = WriteStreams

Source§

type Response = WriteCompletion

Source§

type Input = Stream<DataBatch>

Source§

type Output = Stream<WriteReceipt>

Source§

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

Source§

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

Source§

const POLICY: OperationPolicy = L::POLICY

Source§

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

Source§

type Request = Delivery<L>

Source§

type Response = ()

Source§

type Input = NoStream

Source§

type Output = NoStream