All Downloads are FREE. Search and download functionalities are using the official Maven repository.

proptics.syntax.applied.AppliedStringSyntax.scala Maven / Gradle / Ivy

package proptics.syntax.applied

import proptics.applied.AppliedTraversal
import proptics.std.string.{takeWords => tkwds, _}
import proptics.{AppliedTraversal, Traversal}

trait AppliedStringSyntax {
  implicit final def appliedStringsOps(s: String): AppliedStringsOps = AppliedStringsOps(s)
}

final case class AppliedStringsOps(private val s: String) extends AnyVal {
  /** convert from a [[List[char]]] to a [[String]] */
  def toChars: AppliedTraversal[String, List[Char]] = AppliedTraversal(s, Traversal.id[String].andThen(stringToChars))

  /** fold over the individual words of a String */
  def toWords: AppliedTraversal[String, String] = AppliedTraversal(s, words)

  /** select the first n words of a string */
  def takeWords(i: Int): AppliedTraversal[String, String] = AppliedTraversal(s, tkwds(i))
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy