diff --git a/akka-stream/src/main/mima-filters/2.6.18.backwards.excludes/queue-offer-result.excludes b/akka-stream/src/main/mima-filters/2.6.18.backwards.excludes/queue-offer-result.excludes new file mode 100644 index 0000000000..b309d2007e --- /dev/null +++ b/akka-stream/src/main/mima-filters/2.6.18.backwards.excludes/queue-offer-result.excludes @@ -0,0 +1 @@ +ProblemFilters.exclude[ReversedMissingMethodProblem]("akka.stream.QueueOfferResult.isEnqueued") \ No newline at end of file diff --git a/akka-stream/src/main/scala/akka/stream/QueueOfferResult.scala b/akka-stream/src/main/scala/akka/stream/QueueOfferResult.scala index 373bae7cae..0c2b3c03ed 100644 --- a/akka-stream/src/main/scala/akka/stream/QueueOfferResult.scala +++ b/akka-stream/src/main/scala/akka/stream/QueueOfferResult.scala @@ -10,7 +10,13 @@ import akka.annotation.DoNotInherit * Not for user extension */ @DoNotInherit -sealed abstract class QueueOfferResult +sealed abstract class QueueOfferResult { + + /** + * Return ture if the element was already enqueued, otherwise false. + * */ + def isEnqueued: Boolean +} /** * Not for user extension @@ -26,7 +32,9 @@ object QueueOfferResult { /** * Type is used to indicate that stream is successfully enqueued an element */ - case object Enqueued extends QueueOfferResult + case object Enqueued extends QueueOfferResult { + override def isEnqueued: Boolean = true + } /** * Java API: The `Enqueued` singleton instance @@ -36,7 +44,9 @@ object QueueOfferResult { /** * Type is used to indicate that stream is dropped an element */ - case object Dropped extends QueueOfferResult + case object Dropped extends QueueOfferResult { + override def isEnqueued: Boolean = false + } /** * Java API: The `Dropped` singleton instance @@ -47,10 +57,14 @@ object QueueOfferResult { * Type is used to indicate that stream is failed before or during call to the stream * @param cause - exception that stream failed with */ - final case class Failure(cause: Throwable) extends QueueCompletionResult + final case class Failure(cause: Throwable) extends QueueCompletionResult { + override def isEnqueued: Boolean = false + } /** * Type is used to indicate that stream is completed before call */ - case object QueueClosed extends QueueCompletionResult + case object QueueClosed extends QueueCompletionResult { + override def isEnqueued: Boolean = false + } }