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

wei-k.ghscala_2.10.0.5.0.source-code.Tree.scala Maven / Gradle / Ivy

package ghscala

object Tree {

  implicit val treeCodecJson: CodecJson[Tree] =
    CodecJson.casecodec6(apply, unapply)(
      "url", "sha", "type", "mode", "size", "path"
    )

}

final case class Tree(
  url    :String,
  sha    :String,
  `type` :String,
  mode   :String,
  size   :Option[Long],
  path   :String
){
  lazy val getType:TreeType = `type` match {
    case "blob" => TreeType.Blob
    case "tree" => TreeType.Directory
    case _      => TreeType.Unknown(`type`)
  }
}

sealed abstract trait TreeType extends Any
object TreeType{
  case object Blob                 extends TreeType
  case object Directory            extends TreeType
  case class  Unknown(name:String) extends AnyVal with TreeType
}

case class TreeResponse(
  sha  :String,
  tree :List[Tree],
  url  :String
)





© 2015 - 2025 Weber Informatics LLC | Privacy Policy