diff --git a/core/src/main/scala/io/fintrospect/formats/ResponseContentMagnet.scala b/core/src/main/scala/io/fintrospect/formats/ResponseContentMagnet.scala index 33377f06..96c0d844 100644 --- a/core/src/main/scala/io/fintrospect/formats/ResponseContentMagnet.scala +++ b/core/src/main/scala/io/fintrospect/formats/ResponseContentMagnet.scala @@ -18,42 +18,58 @@ object ResponseContentMagnet { /** * Convert Buf to a ResponseBuilderMagnet for building responses */ - implicit def bufToMagnet[T](s: Buf): ResponseContentMagnet[T] = (b: ResponseBuilder[T]) => b.withContent(s) + implicit def bufToMagnet[T](s: Buf): ResponseContentMagnet[T] = new ResponseContentMagnet[T] { + override def apply(b: ResponseBuilder[T]) = b.withContent(s) + } /** * Convert OutputStream writing function to a ResponseBuilderMagnet for building responses */ - implicit def outputStreamToMagnet[T](f: OutputStream => Unit): ResponseContentMagnet[T] = (b: ResponseBuilder[T]) => b.withContent(f) + implicit def outputStreamToMagnet[T](f: OutputStream => Unit): ResponseContentMagnet[T] = new ResponseContentMagnet[T] { + override def apply(b: ResponseBuilder[T]) = b.withContent(f) + } /** * Convert ChannelBuffer to a ResponseBuilderMagnet for building responses */ - implicit def channelBufferToMagnet[T](bytebuf: ByteBuf): ResponseContentMagnet[T] = (b: ResponseBuilder[T]) => b.withContent(bytebuf) + implicit def channelBufferToMagnet[T](bytebuf: ByteBuf): ResponseContentMagnet[T] = new ResponseContentMagnet[T] { + override def apply(b: ResponseBuilder[T]) = b.withContent(bytebuf) + } /** * Convert AsyncStream to a ResponseBuilderMagnet for building responses */ - implicit def streamToMagnet[T](stream: AsyncStream[T]): ResponseContentMagnet[T] = (b: ResponseBuilder[T]) => b.withContent(stream) + implicit def streamToMagnet[T](stream: AsyncStream[T]): ResponseContentMagnet[T] = new ResponseContentMagnet[T] { + override def apply(b: ResponseBuilder[T]) = b.withContent(stream) + } /** * Convert Reader to a ResponseBuilderMagnet for building responses */ - implicit def readerToMagnet[T](reader: Reader[Buf]): ResponseContentMagnet[T] = (b: ResponseBuilder[T]) => b.withContent(reader) + implicit def readerToMagnet[T](reader: Reader[Buf]): ResponseContentMagnet[T] = new ResponseContentMagnet[T] { + override def apply(b: ResponseBuilder[T]) = b.withContent(reader) + } /** * Convert a custom format type (eg. JsonObject) to a ResponseBuilderMagnet for building responses */ - implicit def customFormatToMagnet[T](t: T): ResponseContentMagnet[T] = (b: ResponseBuilder[T]) => b.withContent(t) + implicit def customFormatToMagnet[T](t: T): ResponseContentMagnet[T] = new ResponseContentMagnet[T] { + override def apply(b: ResponseBuilder[T]) = b.withContent(t) + } /** * Convert String to a ResponseBuilderMagnet for building responses */ - implicit def stringToMagnet[T](s: String): ResponseContentMagnet[T] = (b: ResponseBuilder[T]) => if (b.response.status.code < 400) b.withContent(s) else b.withErrorMessage(s) + implicit def stringToMagnet[T](s: String): ResponseContentMagnet[T] = new ResponseContentMagnet[T] { + override def apply(b: ResponseBuilder[T]) = if (b.response.status.code < 400) b.withContent(s) else b.withErrorMessage(s) + } /** * Convert an Exception to a ResponseBuilderMagnet for building responses */ - implicit def exceptionToMagnet[T](error: Throwable): ResponseContentMagnet[T] = (b: ResponseBuilder[T]) => b.withError(error) + implicit def exceptionToMagnet[T](error: Throwable): ResponseContentMagnet[T] = new ResponseContentMagnet[T] { + override def apply(b: ResponseBuilder[T]) = b.withError(error) + } }