All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.twitter.finagle.stream.StreamRequest.scala Maven / Gradle / Ivy

There is a newer version: 6.39.0
Show newest version
package com.twitter.finagle.stream

import com.twitter.io.Buf

case class StreamRequest(
    method: StreamRequest.Method,
    uri: String,
    version: Version = Version(1, 1),
    headers: Seq[Header] = Nil,
    body: Buf = Buf.Empty
)

object StreamRequest {
  sealed trait Method

  object Method {
    case object Options extends Method
    case object Get extends Method
    case object Head extends Method
    case object Post extends Method
    case object Put extends Method
    case object Delete extends Method
    case object Trace extends Method
    case object Connect extends Method
    case object Patch extends Method
    case class Custom(name: String) extends Method

    /**
     * Create a method from a String. The input is case-insensitive.
     */
    def apply(name: String): Method = name.toUpperCase match {
      case "OPTIONS" => Method.Options
      case "GET" => Method.Get
      case "HEAD" => Method.Head
      case "POST" => Method.Post
      case "PUT" => Method.Put
      case "DELETE" => Method.Delete
      case "TRACE" => Method.Trace
      case "CONNECT" => Method.Connect
      case "PATCH" => Method.Patch
      case name => Method.Custom(name)
    }
  }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy