trait MessageParser[A] extends AnyRef

MessageParser is a typeclass to simplify parsing messages. It can derive instances for any ADT, and makes it much easier to work with messages.

A

The type to parse.

Self Type
MessageParser[A]
Source
MessageParser.scala
Linear Supertypes
Type Hierarchy
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. MessageParser
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Abstract Value Members

  1. abstract def parse[F[_]](strings: List[String])(implicit c: CacheSnapshot[F], F: Monad[F]): EitherT[F, String, (List[String], A)]

    Parse a message into the needed types.

    Parse a message into the needed types.

    strings

    The content of the message where each string is separated by a space.

    c

    The cache to use.

    returns

    Left with an error message if it failed to parse, or Right with the remaining arguments, and the parsed value.

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  5. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )
  6. def collectWithError[B](error: String)(pf: PartialFunction[A, B]): MessageParser[B]

    Apply a partial function of this parser, returning the error if the function isn't defined.

    Apply a partial function of this parser, returning the error if the function isn't defined.

    B

    The new parser type.

    error

    The error to return if the partial function isn't defined.

    pf

    The partial function to apply.

  7. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  8. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  9. def filterWithError(f: (A) ⇒ Boolean, error: String): MessageParser[A]

    Create a new parser by filtering the values created by this parser.

    Create a new parser by filtering the values created by this parser.

    f

    The predicate.

    error

    The error message if the value does not match the predicate.

  10. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  11. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  12. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @native()
  13. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  14. def map[B](f: (A) ⇒ B): MessageParser[B]

    Create a new parser by applying a function to the result of this parser

    Create a new parser by applying a function to the result of this parser

    B

    The new parser type

    f

    The function to apply

  15. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  16. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  17. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @native()
  18. def parseResult[F[_]](strings: List[String])(implicit c: CacheSnapshot[F], F: Monad[F]): EitherT[F, String, A]

    Parse a message into the needed types, tossing away the remaining string.

    Parse a message into the needed types, tossing away the remaining string.

    strings

    The content of the message where each string is separated by a space.

    c

    The cache to use.

    returns

    Left with an error message if it failed to parse, or Right with the parsed value.

  19. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  20. def toString(): String
    Definition Classes
    AnyRef → Any
  21. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  22. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @native() @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped