gleamdoc/interface

Lookup, search, and rendering for compiler-generated package interfaces.

Types

A public module, value, type, variant, or alias found in a package interface.

pub type Entry {
  ModuleEntry(
    package: package_interface.Package,
    name: String,
    module: package_interface.Module,
  )
  FunctionEntry(
    package: package_interface.Package,
    module: String,
    name: String,
    value: package_interface.Function,
  )
  ConstantEntry(
    package: package_interface.Package,
    module: String,
    name: String,
    value: package_interface.Constant,
  )
  TypeEntry(
    package: package_interface.Package,
    module: String,
    name: String,
    value: package_interface.TypeDefinition,
  )
  VariantEntry(
    package: package_interface.Package,
    module: String,
    type_name: String,
    type_parameters: Int,
    name: String,
    value: package_interface.TypeConstructor,
  )
  AliasEntry(
    package: package_interface.Package,
    module: String,
    name: String,
    value: package_interface.TypeAlias,
  )
}

Constructors

Values

pub fn entries_json(entries: List(Entry)) -> json.Json

Encodes entries in Gleamdoc’s versioned JSON response envelope.

pub fn format_type(type_: package_interface.Type) -> String

Formats a package-interface type as Gleam source syntax.

pub fn lookup(
  package: package_interface.Package,
  query: String,
) -> List(Entry)

Looks up an exact module or qualified symbol in one package.

pub fn lookup_packages(
  packages: List(package_interface.Package),
  query: String,
) -> List(Entry)

Looks up an exact, optionally package-qualified symbol across packages.

pub fn packages_json(
  packages: List(package_interface.Package),
) -> json.Json

Encodes package summaries in Gleamdoc’s versioned JSON response envelope.

pub fn render(entry: Entry) -> String

Renders complete documentation for one entry.

pub fn render_all(entries: List(Entry)) -> String

Renders complete documentation for all entries.

pub fn render_packages(
  packages: List(package_interface.Package),
) -> String

Renders package names, versions, and module counts.

pub fn render_search_results(entries: List(Entry)) -> String

Renders compact, one-line search results.

pub fn search(
  package: package_interface.Package,
  query: String,
) -> List(Entry)

Searches one package by symbol name, module, package name, signature, and documentation.

pub fn search_packages(
  packages: List(package_interface.Package),
  query: String,
  limit: Int,
) -> List(Entry)

Searches packages and returns at most the requested number of ranked entries.

pub fn search_packages_filtered(
  packages: List(package_interface.Package),
  query: String,
  limit: Int,
  kind kind: String,
  target target: String,
) -> List(Entry)

Searches packages with optional entry-kind and runtime-target filters.

An empty filter matches all entries. Target filters only match functions and constants because other entries do not have runtime-target metadata.

Search Document