Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package cenas
- object Payload {
- def unapply(z: List[Int]): Option[List[Int]] = if (z.length == z.head + 1) Option(z tail) else None
- }
- object EndToken {
- def unapply(z: List[Int]): Option[List[Int]] = z.reverse match {
- case 0x0D :: 0x0A :: tail => Option(tail.reverse)
- case _ => None
- }
- }
- object Message {
- def unapply(z: List[Int]): Option[List[Int]] = z match {
- case 0xFC :: EndToken(x) => Option(x)
- case _ => None
- }
- }
- object Main extends App {
- val x = List(0xFC, 0x03, 0x01, 0x02, 0x03, 0x0A, 0x0D)
- x match {
- case Message(Payload(payload)) => println (payload)
- case _ => println("No match")
- }
- }
Add Comment
Please, Sign In to add comment