Trait/Object

net.katsstuff.ackcord.util

MessageParser

Related Docs: object MessageParser | package util

Permalink

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]
Linear Supertypes
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)]

    Permalink

    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

    Permalink
    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  4. final def asInstanceOf[T0]: T0

    Permalink
    Definition Classes
    Any
  5. def clone(): AnyRef

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  6. def collectWithError[B](error: String)(pf: PartialFunction[A, B]): MessageParser[B]

    Permalink

    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

    Permalink
    Definition Classes
    AnyRef
  8. def equals(arg0: Any): Boolean

    Permalink
    Definition Classes
    AnyRef → Any
  9. def filterWithError(f: (A) ⇒ Boolean, error: String): MessageParser[A]

    Permalink

    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

    Permalink
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  11. final def getClass(): Class[_]

    Permalink
    Definition Classes
    AnyRef → Any
  12. def hashCode(): Int

    Permalink
    Definition Classes
    AnyRef → Any
  13. final def isInstanceOf[T0]: Boolean

    Permalink
    Definition Classes
    Any
  14. def map[B](f: (A) ⇒ B): MessageParser[B]

    Permalink

    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

    Permalink
    Definition Classes
    AnyRef
  16. final def notify(): Unit

    Permalink
    Definition Classes
    AnyRef
  17. final def notifyAll(): Unit

    Permalink
    Definition Classes
    AnyRef
  18. def parseResult[F[_]](strings: List[String])(implicit c: CacheSnapshot[F], F: Monad[F]): EitherT[F, String, A]

    Permalink

    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

    Permalink
    Definition Classes
    AnyRef
  20. def toString(): String

    Permalink
    Definition Classes
    AnyRef → Any
  21. final def wait(): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  22. final def wait(arg0: Long, arg1: Int): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  23. final def wait(arg0: Long): Unit

    Permalink
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )

Inherited from AnyRef

Inherited from Any

Ungrouped