package scalaz package syntax package std import scalaz.std.{string => s} trait StringOps extends Ops[String]{ /** * Returns the same String value if the given value is 1 otherwise pluralises this String by appending an "s" unless * this String ends with "y" and not one of ["ay", "ey", "iy", "oy", "uy"] in which case the 'y' character is chopped and "ies" * is appended. */ def plural(n: Long): String = s.plural(self, n) def encode(implicit c: CharSet): Array[Byte] = s.encode(self) /** * Constructs a non-empty list with the value if it is not empty, otherwise, throws an error. */ def charsNel : Option[NonEmptyList[Char]] = s.charsNel(self) /** * Constructs a non-empty list with the given string if it is not empty, otherwise, returns the second argument. */ def charsNel(e: => NonEmptyList[Char]) : NonEmptyList[Char] = s.charsNel(self, e) def charsNelErr(message: => String): NonEmptyList[Char] = s.charsNelErr(self, message) def unsafeCharsNel : NonEmptyList[Char] = s.unsafeCharsNel(self) // Parsing functions. def parseBoolean: Validation[IllegalArgumentException, Boolean] = s.parseBoolean(self) def parseByte: Validation[NumberFormatException, Byte] = s.parseByte(self) def parseShort: Validation[NumberFormatException, Short] = s.parseShort(self) def parseInt: Validation[NumberFormatException, Int] = s.parseInt(self) def parseLong: Validation[NumberFormatException, Long] = s.parseLong(self) def parseFloat: Validation[NumberFormatException, Float] = s.parseFloat(self) def parseDouble: Validation[NumberFormatException, Double] = s.parseDouble(self) } trait ToStringOps { implicit def ToStringOpsFromString(a:String): StringOps = new StringOps{ def self = a } }