aboutsummaryrefslogtreecommitdiff
path: root/core/src/main/scala/com/softwaremill/sttp/model/RequestBody.scala
blob: 0c737f043498465c2ac17da78a476d77b53bff92 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
package com.softwaremill.sttp.model

import java.io.InputStream
import java.nio.ByteBuffer
import java.nio.file.Path

import com.softwaremill.sttp.BodySerializer

sealed trait RequestBody[+S]
case object NoBody extends RequestBody[Nothing]
case class SerializableBody[T](f: BodySerializer[T], t: T)
    extends RequestBody[Nothing]

sealed trait BasicRequestBody extends RequestBody[Nothing]
case class StringBody(s: String, encoding: String) extends BasicRequestBody
case class ByteArrayBody(b: Array[Byte]) extends BasicRequestBody
case class ByteBufferBody(b: ByteBuffer) extends BasicRequestBody
case class InputStreamBody(b: InputStream) extends BasicRequestBody
case class PathBody(f: Path) extends BasicRequestBody

case class StreamBody[S](s: S) extends RequestBody[S]