Documentation
¶
Overview ¶
Package manual implements a human-owned root provider. Unlike the upstream providers, it resolves nothing over the network: its value is whatever the target line already carries, published under the marker's id so followers and side values track it coherently. clover never rewrites a manual line - a person owns the value - so the provider exists to anchor a dependency graph at a value no registry knows about.
Index ¶
- type Provider
- func (p *Provider) Anchor()
- func (p *Provider) Describe(provider.Resource) string
- func (p *Provider) Discover(context.Context, provider.Resource) ([]model.Candidate, error)
- func (p *Provider) Keys() []provider.Key
- func (p *Provider) Name() string
- func (p *Provider) Resource(d directive.Directive) (provider.Resource, error)
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type Provider ¶
type Provider struct{}
Provider is a human-owned root. It resolves to the value already on its target line and publishes it under the marker's id for followers, contacting no upstream. There is no selection stage - the value changes only when a person edits the line - so clover leaves the line untouched and never bumps it.
func (*Provider) Anchor ¶
func (p *Provider) Anchor()
Anchor marks the provider as line-anchored: clover reads its value from the target line and skips discovery and selection.
func (*Provider) Discover ¶
Discover is never called: clover short-circuits an anchored provider before discovery, resolving the value from the target line instead.
func (*Provider) Keys ¶
Keys reports the directive keys manual accepts. It declares none of its own - a manual root is configured entirely with the common vocabulary (id to publish the value, find to pin which token on an ambiguous line is the value).