def apply()

in bijection-core/src/main/scala-2.12-/com/twitter/bijection/StringBijections.scala [46:65]


  def apply(separator: String = DEFAULT_SEP): Bijection[Iterable[String], Option[String]] =
    new AbstractBijection[Iterable[String], Option[String]] {
      override def apply(xs: Iterable[String]) = {
        // TODO: Instead of throwing, escape the separator in the encoded string.
        assert(
          !xs.exists(_.contains(separator)),
          "Can't encode strings that include the separator."
        )
        if (xs.isEmpty)
          None
        else
          Some(xs.mkString(separator))
      }
      override def invert(strOpt: Option[String]) =
        strOpt match {
          case None => Iterable.empty[String]
          // String#split is not reversible, and uses regexs
          case Some(str) => StringJoinBijection.split(str, separator)
        }
    }