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

io.taig.linguist.Linguist.scala Maven / Gradle / Ivy

package io.taig.linguist

import cats.~>

import java.nio.file.Path

abstract class Linguist[F[_]] { self =>
  def languages: F[List[Linguist.Language]]

  def detect(path: Path, content: String): F[Option[String]]

  def detect(path: Path): F[List[String]]

  final def mapK[G[_]](fK: F ~> G): Linguist[G] = new Linguist[G] {
    override def languages: G[List[Linguist.Language]] = fK(self.languages)

    override def detect(path: Path, content: String): G[Option[String]] = fK(self.detect(path, content))

    override def detect(path: Path): G[List[String]] = fK(self.detect(path))
  }
}

object Linguist {
  final case class Language(name: String, extensions: List[String])
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy