Parser

oxygen.cli.Parser
See theParser companion object
sealed trait Parser[+A]

Attributes

Companion
object
Experimental
true
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait Params[A]
class And[A, B, O]
class Const[A]
class IfPresent[A]
object Ignored
class Mapped[A, B]
class MappedOrFail[A, B]
class Optional[A]
class Or[A]
class ParamWithValues[A]
class Raw
class Repeated[A]
class RepeatedNel[A]
class WithDefault[A]
object Empty
class Mapped[A, B]
class MappedOrFail[A, B]
class Or[A]
class Then[A, B, O]
trait Values[A]
class Bracketed[A]
object Ignored
class Mapped[A, B]
class MappedOrFail[A, B]
class Optional[A]
class Or[A]
class Raw
class Repeated[A]
class RepeatedNel[A]
class SingleValue
class Then[A, B, O]
class WithDefault[A]
Show all

Members list

Value members

Abstract methods

def buildInternal(usedParams: Set[SimpleName]): Either[BuildError, (Set[SimpleName], Parser[A])]

This should do 2 things:

This should do 2 things:

  1. Fail if there are duplicate param names
  2. Convert Defaultable.Auto into Defaultable.Some/Defaultable.None based on start of long name

Attributes

def optionalName: Option[Name]
def parse(values: List[ValueLike], params: List[ParamLike]): ParseResult[A]

Concrete methods

final def <||[A2 >: A](that: Parser[A2]): Parser[A2]
final def <||>[B](that: Parser[B]): Parser[Either[A, B]]
final def ^>>[B](that: Parser[B])(implicit zip: Zip[A, B]): Parser[zip.Out]
final def bracketed(name: LongName): Values[A]
final def build: Either[BuildError, Parser[Either[HelpType, A]]]
def map[B](f: A => B): Parser[B]
def mapOrFail[B](f: A => Either[String, B]): Parser[B]