// Copyright 2023 schukai GmbH // SPDX-License-Identifier: AGPL-3.0 package jobqueue import ( "context" ) type ResultStatus int const ( ResultStatusSuccess ResultStatus = iota ResultStatusFailed ) type RunGenericResult interface { GetStatus() ResultStatus } type RunResult[T any] struct { Status ResultStatus Data T } func (r RunResult[T]) GetStatus() ResultStatus { return r.Status } type Runnable[T any] interface { Run(ctx context.Context) (RunResult[T], error) GetType() string GetPersistence() RunnableImport }