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".

Implementations on Foreign Types§

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§

fn grant( request: &<CaptureFile as OperationDeclaration>::Request, ) -> Option<Grant>

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§

fn grant(request: &<Catalog as OperationDeclaration>::Request) -> Option<Grant>

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§

fn grant( request: &<FollowFile as OperationDeclaration>::Request, ) -> Option<Grant>

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§

fn grant( request: &<FollowProduction as OperationDeclaration>::Request, ) -> Option<Grant>

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§

fn grant( request: &<FollowRecords as OperationDeclaration>::Request, ) -> Option<Grant>

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§

fn grant(request: &<HashFile as OperationDeclaration>::Request) -> Option<Grant>

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§

fn grant(request: &<Query as OperationDeclaration>::Request) -> Option<Grant>

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§

fn grant(request: &<ReadFile as OperationDeclaration>::Request) -> Option<Grant>

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§

fn grant( request: &<WriteFile as OperationDeclaration>::Request, ) -> Option<Grant>

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>

Implementors§

Source§

impl OperationDeclaration for Activation

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<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