Future.successful serve similar purposes, incase you are wondering which one to use go for anyone as there is not much of a difference but they are associated with different libraries and have some differences in their usage:
Cats Library (
.pureis a method provided by the Cats library, which is a popular library for functional programming in Scala.
- It is not part of the standard Scala library.
- Cats provides abstractions for working with different effect types, including
.pureis used to lift a pure (non-effectful) value into a specified effect type, such as
- It is more aligned with functional programming concepts and type classes.
import cats.implicits._ import scala.concurrent.Future val value: Int = 42 val futureValue: Future[Int] = value.pure[Future]
Standard Library (
Future.successfulis part of the standard Scala library, and it’s used to create a successful (completed)
Futurewith a specified value.
- It’s simple and straightforward to use, as it doesn’t require any additional libraries or imports.
- It’s commonly used for creating successful
import scala.concurrent.Future val value: Int = 42 val futureValue: Future[Int] = Future.successful(value)
In summary, if you’re using the Cats library or are working within a functional programming context, you might prefer
.pure[Future] to lift values into a
Future. However, if you’re looking for a simple and standard way to create a successful
Future, you can use
Future.successful. The choice between them depends on your project’s dependencies and your preferred style of programming.