26 lines
589 B
Scala
26 lines
589 B
Scala
// See LICENSE for license details.
|
|
|
|
object Version {
|
|
|
|
sealed trait Branch { def serialize: String }
|
|
|
|
case class SemanticVersion(major: Int, minor: Int, patch: Int) extends Branch {
|
|
def serialize: String = s"v$major.$minor.$patch"
|
|
}
|
|
|
|
case object Master extends Branch {
|
|
def serialize: String = "master"
|
|
}
|
|
|
|
sealed trait Repository {
|
|
def serialize: String
|
|
def url: String
|
|
}
|
|
|
|
case class GitHubRepository(owner: String, repo: String) extends Repository {
|
|
def serialize: String = s"github.com:$owner/$repo"
|
|
def url: String = s"https://$serialize"
|
|
}
|
|
|
|
}
|