pubgrub

Types

pub type Dependencies(p, v, m) {
  Unavailable(m)
  Available(dict.Dict(p, version_ranges.Ranges(v)))
}

Constructors

pub type DependencyProvider(p, v, m, err, priority) {
  DependencyProvider(
    compare: fn(v, v) -> order.Order,
    compare_priority: fn(priority, priority) -> order.Order,
    prioritize: fn(
      p,
      version_ranges.Ranges(v),
      PackageResolutionStatistics,
    ) -> priority,
    choose_version: fn(p, version_ranges.Ranges(v)) -> Result(
      option.Option(v),
      err,
    ),
    get_dependencies: fn(p, v) -> Result(
      Dependencies(p, v, m),
      err,
    ),
    should_cancel: fn() -> Result(Nil, err),
  )
}

Constructors

pub type OfflineDependencyProvider(p, v) {
  OfflineDependencyProvider(
    dependencies: dict.Dict(
      p,
      dict.Dict(v, dict.Dict(p, version_ranges.Ranges(v))),
    ),
  )
}

Constructors

pub type PackageResolutionStatistics {
  PackageResolutionStatistics(
    unit_propagation_affected: Int,
    unit_propagation_culprit: Int,
    dependencies_affected: Int,
    dependencies_culprit: Int,
  )
}

Constructors

  • PackageResolutionStatistics(
      unit_propagation_affected: Int,
      unit_propagation_culprit: Int,
      dependencies_affected: Int,
      dependencies_culprit: Int,
    )
pub type PubGrubError(p, v, m, err) {
  NoSolution(report.DerivationTree(p, v, m))
  ErrorRetrievingDependencies(
    package: p,
    version: v,
    source: err,
  )
  ErrorChoosingVersion(package: p, source: err)
  ErrorInShouldCancel(source: err)
}

Constructors

  • NoSolution(report.DerivationTree(p, v, m))
  • ErrorRetrievingDependencies(package: p, version: v, source: err)
  • ErrorChoosingVersion(package: p, source: err)
  • ErrorInShouldCancel(source: err)
pub type SemanticVersion =
  #(Int, Int, Int)

Values

pub fn conflict_count(stats: PackageResolutionStatistics) -> Int
pub fn offline_add_dependencies(
  provider: OfflineDependencyProvider(p, v),
  package: p,
  version: v,
  dependencies: List(#(p, version_ranges.Ranges(v))),
) -> OfflineDependencyProvider(p, v)
pub fn offline_new() -> OfflineDependencyProvider(p, v)
pub fn offline_packages(
  provider: OfflineDependencyProvider(p, v),
) -> List(p)
pub fn offline_provider(
  provider: OfflineDependencyProvider(p, v),
  compare: fn(v, v) -> order.Order,
) -> DependencyProvider(p, v, String, Nil, #(Int, Int))
pub fn offline_versions(
  provider: OfflineDependencyProvider(p, v),
  package: p,
) -> option.Option(List(v))
pub fn resolve(
  dependency_provider: DependencyProvider(p, v, m, err, priority),
  package: p,
  version: v,
) -> Result(dict.Dict(p, v), PubGrubError(p, v, m, err))
pub fn semantic_version_new(
  major: Int,
  minor: Int,
  patch: Int,
) -> #(Int, Int, Int)
pub fn semantic_version_to_string(
  ver: #(Int, Int, Int),
) -> String
Search Document