diff options
author | Li Haoyi <haoyi.sg@gmail.com> | 2019-09-16 08:58:31 +0800 |
---|---|---|
committer | Li Haoyi <haoyi.sg@gmail.com> | 2019-09-16 08:58:31 +0800 |
commit | 583893aff7e39e085dbf5bec27c9b0b24e5e8d2e (patch) | |
tree | b2cf94c9bef2824159d8c9bd4f4867163a6ef36c /cask/src/cask/router/Misc.scala | |
parent | 4851f249c8124ce725576f4f87f097f16e2f3843 (diff) | |
download | cask-583893aff7e39e085dbf5bec27c9b0b24e5e8d2e.tar.gz cask-583893aff7e39e085dbf5bec27c9b0b24e5e8d2e.tar.bz2 cask-583893aff7e39e085dbf5bec27c9b0b24e5e8d2e.zip |
Break up `Router.scala` into a `router/` folder with multiple files
Diffstat (limited to 'cask/src/cask/router/Misc.scala')
-rw-r--r-- | cask/src/cask/router/Misc.scala | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/cask/src/cask/router/Misc.scala b/cask/src/cask/router/Misc.scala new file mode 100644 index 0000000..438ec43 --- /dev/null +++ b/cask/src/cask/router/Misc.scala @@ -0,0 +1,23 @@ +package cask.router + +import scala.annotation.StaticAnnotation + + +class doc(s: String) extends StaticAnnotation + +/** + * Models what is known by the router about a single argument: that it has + * a [[name]], a human-readable [[typeString]] describing what the type is + * (just for logging and reading, not a replacement for a `TypeTag`) and + * possible a function that can compute its default value + */ +case class ArgSig[I, -T, +V, -C](name: String, + typeString: String, + doc: Option[String], + default: Option[T => V]) + (implicit val reads: ArgReader[I, V, C]) + +trait ArgReader[I, +T, -C]{ + def arity: Int + def read(ctx: C, label: String, input: I): T +} |