ValueMapper

trait ValueMapper[T]

Provides utility for mapping option values and arguments.

import little.cli.{ *, given }
import Cli.{ application, option }

case class KeepAlive(idleTimeout: Int, maxRequests: Int)

// Define how to map value to KeepAlive
given ValueMapper[KeepAlive] =
 _.split(":") match
   case Array(timeout, max) => KeepAlive(timeout.toInt, max.toInt)

val app = application("start-server [ options ... ] port",
 option("d", "directory", true, "Location of public files directory"),
 option("k", "keep-alive", true, "Allow persistent connections").argName("timeout:max")
)

val cmd = app.parse("-d ./public_html --keep-alive 5:10 8080".split("\\s+"))

// Map keep-alive option
val keepAlive = cmd.mapOptionValue[KeepAlive]("keep-alive")

// Map directory option File
val directory = cmd.mapOptionValue[java.io.File]("directory")

// Map port argument via Int
val port = cmd.mapArg[Int](0)
class Object
trait Matchable
class Any

Value members

Abstract methods

def map(value: String): T

Maps value to type T.

Maps value to type T.

Value Params
value

input value