Skip to content

Commit

Permalink
draft Tooltips type and attach it to VertexContext
Browse files Browse the repository at this point in the history
  • Loading branch information
tayloraswift committed May 7, 2024
1 parent 3c82e60 commit a7ec863
Show file tree
Hide file tree
Showing 6 changed files with 50 additions and 0 deletions.
21 changes: 21 additions & 0 deletions Sources/UnidocRender/Unidoc.Tooltips.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
import UnidocRecords

extension Unidoc
{
@frozen public
struct Tooltips
{
public
var cultures:[CultureVertex]
public
var decls:[DeclVertex]

@inlinable public
init(cultures:[CultureVertex] = [], decls:[DeclVertex] = [])
{
self.cultures = cultures
self.decls = decls
}
}
}

4 changes: 4 additions & 0 deletions Sources/UnidocRender/Unidoc.VertexContext.swift
Original file line number Diff line number Diff line change
@@ -1,3 +1,4 @@
import HTML
import Symbols
import UnidocRecords

Expand All @@ -12,6 +13,7 @@ extension Unidoc
principal:VolumeMetadata,
secondary:borrowing [VolumeMetadata],
packages:borrowing [PackageMetadata],
tooltips:Tooltips,
vertices:Table)

var canonical:CanonicalVersion? { get }
Expand All @@ -20,6 +22,8 @@ extension Unidoc
var media:PackageMedia? { get }
var repo:PackageRepo? { get }

var tooltips:Tooltips { get }

subscript(package id:Package) -> PackageMetadata? { get }

/// Returns the metadata document for the specified volume, if available.
Expand Down
16 changes: 16 additions & 0 deletions Sources/UnidocUI/Cones/Unidoc.Tooltips (ext).swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
extension Unidoc.Tooltips
{
init(filtering vertices:__shared [Unidoc.AnyVertex])
{
self.init()
for vertex:Unidoc.AnyVertex in vertices
{
switch vertex
{
case .culture(let vertex): self.cultures.append(vertex)
case .decl(let vertex): self.decls.append(vertex)
default: continue
}
}
}
}
1 change: 1 addition & 0 deletions Sources/UnidocUI/Endpoints/Unidoc.RedirectEndpoint.swift
Original file line number Diff line number Diff line change
Expand Up @@ -66,6 +66,7 @@ extension Unidoc.RedirectEndpoint:HTTP.ServerEndpoint
principal: output.volume,
secondary: [],
packages: [],
tooltips: .init(),
vertices: .init(secondary: output.matches))

let display:Unidoc.DocsEndpoint.NotFoundPage = .init(context, sidebar: nil)
Expand Down
2 changes: 2 additions & 0 deletions Sources/UnidocUI/Endpoints/Unidoc.VertexEndpoint.swift
Original file line number Diff line number Diff line change
Expand Up @@ -88,6 +88,7 @@ extension Unidoc.VertexEndpoint where Self:HTTP.ServerEndpoint
principal: principal.volume,
secondary: output.volumes,
packages: output.packages,
tooltips: .init(filtering: output.vertices),
vertices: .init(principal: vertex, secondary: output.vertices))

_ = consume output
Expand All @@ -110,6 +111,7 @@ extension Unidoc.VertexEndpoint where Self:HTTP.ServerEndpoint
principal: principal.volume,
secondary: output.volumes,
packages: output.packages,
tooltips: .init(filtering: principal.matches),
vertices: .init(secondary: principal.matches))

return try self.failure(matches: principal.matches,
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,6 +16,8 @@ extension Unidoc
{
public
let canonical:CanonicalVersion?
public
let tooltips:Tooltips

private(set)
var packages:PackageContext
Expand All @@ -28,11 +30,13 @@ extension Unidoc
private
init(canonical:CanonicalVersion?,
packages:PackageContext,
tooltips:Tooltips,
cache:Cache,
media:PackageMedia?)
{
self.canonical = canonical
self.packages = packages
self.tooltips = tooltips
self.cache = cache
self.media = media
}
Expand All @@ -42,6 +46,7 @@ extension Unidoc
principal:VolumeMetadata,
secondary:borrowing [VolumeMetadata],
packages:__shared [PackageMetadata],
tooltips:Tooltips,
vertices:Table)
{
let packages:PackageContext = .init(principal: principal.id.package,
Expand Down Expand Up @@ -72,6 +77,7 @@ extension Unidoc

self.init(canonical: canonical,
packages: packages,
tooltips: tooltips,
cache: .init(
vertices: vertices,
volumes: .init(principal: principal, secondary: secondary)),
Expand Down

0 comments on commit a7ec863

Please sign in to comment.