Documentation
¶
Index ¶
- Constants
- Variables
- func Alias(prefix, name, importPath string) string
- func CollectEntries(path string) ([]annotation.Entry, error)
- func ConfigEnv(root, segment string) string
- func ConfigKey(modulePath, importPath string) string
- func ExecuteTemplate(tmpl *template.Template, name string, data any) ([]byte, error)
- func ExportInjectGraphToGraphviz(g *graph.Graph[Component], filename string) error
- func FindModule(dir string) (modulePath string, moduleDir string, err error)
- func GenPath(base, importPath string) string
- func GenPathUnder(base, sub, importPath string) string
- func NewGraphFromEntries(ctx context.Context, entries []annotation.Entry) (*graph.Graph[Component], error)
- func NewTemplate() (*template.Template, error)
- func WriteGenerated(ctx context.Context, dir string, files map[string][]byte, header string) error
- func WriteGraphviz(w io.Writer, g *graph.Graph[Component]) error
- type Annotation
- type AnnotationIDType
- type AnnotationType
- type Client
- type ClientData
- type ClientFactory
- type ClientPlugin
- type ClientPluginData
- type Component
- type ConfigData
- type ConfigField
- type ConfigKeyData
- type Generator
- type GeneratorOptions
- type Implementation
- func (i Implementation) Chosen(base string) (ImportData, string)
- func (i Implementation) File(base string) string
- func (i Implementation) Ident() string
- func (i Implementation) Import(base string) ImportData
- func (i Implementation) Key(modulePath string) string
- func (i Implementation) Module(base string) (ImportData, string)
- func (i Implementation) Names() []string
- type ImplementationCase
- type ImplementationData
- type ImportData
- type ModuleAttr
- type ModuleData
- type Publisher
- type PublisherCase
- type PublisherData
- type PublisherDriver
- type PublisherDriverData
- type RootData
Constants ¶
const ( // PublisherDriverKey chooses the driver of the publisher inject builds. // It is not boost.wrapper.publisher.driver: that key holds the options of // the drivers. PublisherDriverKey = "boost.wrapper.publisher.driver.name" // DefaultPublisherDriver is the driver when PublisherDriverKey is unset. DefaultPublisherDriver = "noop" )
const GeneratedHeader = "// Code generated by inject; DO NOT EDIT."
GeneratedHeader marks the files owned by the generator. Generate only removes stale files that start with it.
Variables ¶
var ErrInvalidAnnotationIDType = errors.New("not a valid AnnotationIDType")
var ErrInvalidAnnotationType = errors.New("not a valid AnnotationType")
var ErrInvalidModuleAttr = errors.New("not a valid ModuleAttr")
Functions ¶
func Alias ¶
Alias returns an import alias for the package name at importPath that does not collide with other packages of the same name: prefix_name_hash.
func CollectEntries ¶
func CollectEntries(path string) ([]annotation.Entry, error)
CollectEntries returns the functions under path, and in the packages they import, annotated with @Provide, @Inject, @Invoke or @Default, and the structs annotated with @Config.
func ConfigEnv ¶
ConfigEnv returns the environment variable that sets the key segment under root: dots become "_" and the words of a camelCase segment are joined by "__", which the env loader turns back into the segment (BASE__URL -> baseUrl).
func ConfigKey ¶
ConfigKey returns the root config key of the @Config struct of a package, given the Go module path of the application: the package path relative to the module, in dots, with the segment rules of Implementation.Key.
func ExecuteTemplate ¶
ExecuteTemplate executes the named template and returns the result formatted with gofmt. It fails when the output is not valid Go.
func ExportInjectGraphToGraphviz ¶
ExportInjectGraphToGraphviz writes the dependency graph to filename in Graphviz DOT format. Providers are green ellipses, invokers yellow octagons, and an edge goes from a provider to each component using it.
func FindModule ¶
FindModule walks up from dir to the nearest go.mod and returns the module path and its root directory.
func GenPath ¶
GenPath returns the directory, relative to the output dir whose import path is base, of the package generated for the package at importPath. A package of the project, the directory that holds the output dir, mirrors its path in the project (the project's base name for the project itself), so the output dir reads like the project: internal/app/..., internal/pkg/.... Any other package mirrors its whole import path. Two renames keep the packages importable and apart:
- an internal element below the first is written internal_. Generated packages import each other across the output dir, and Go lets only the tree above an internal/ directory import what is in it; a leading internal/ sits right under the output dir, so it stays.
- the first element of a package of the project is written with a trailing _ when it is a directory the generators own (builder, client, implementation) or has a dot, as the first element of an import path has.
func GenPathUnder ¶
GenPathUnder is GenPath below the directory sub of the output dir, such as implementation, with a leading internal written internal_ too: below sub no internal/ sits right under the output dir.
func NewGraphFromEntries ¶
func NewGraphFromEntries(ctx context.Context, entries []annotation.Entry) (*graph.Graph[Component], error)
NewGraphFromEntries builds the dependency graph of the annotated functions.
Every function with @Provide or @Invoke becomes a vertex. An edge goes from a provider to each function that consumes what it provides: parameters with @Inject must have a provider in the graph, while parameters without it are linked when a default provider of the same type exists and are otherwise left for the application to provide. An @Inject client parameter (*resty.Client, ...) without a provider is a client inject builds (see Clients).
Two or more providers of the same non-group value form an implementation set when one of them is marked @Default (see Implementations).
A struct annotated @Config is a vertex too: it provides *Struct, filled from config.
It returns a NotValid error for malformed annotations, a dependency cycle, two @Config in a package, an invalid implementation set or invalid client plugins, AlreadyExists when two functions provide the same non-group value and none is @Default or two clients share a file, and NotFound when an @Inject has no provider.
func NewTemplate ¶
NewTemplate parses the generator templates ("module", "root", "implementation", "config", "client", "publisher", "publisher_driver" and "publisher_unsupported").
func WriteGenerated ¶
WriteGenerated writes files, keyed by their slash-separated path relative to dir, and removes the files under dir that start with header and are not in files. Files of other generators and handwritten files are kept.
Types ¶
type Annotation ¶
Annotation holds the arguments of a @Provide or @Inject annotation. Index points to the function result (@Provide) or parameter (@Inject); Name and Group map to fx `name:"..."` and `group:"..."` tags. Plugins, on the @Inject of a client parameter, lists the plugins of the client inject builds ("[otel, prometheus]").
func (*Annotation) ID ¶
func (a *Annotation) ID() string
ID identifies the value kind of the annotation. Names and groups keep their case because fx matches tags case-sensitively.
func (*Annotation) IDType ¶
func (a *Annotation) IDType() AnnotationIDType
IDType reports whether the annotation is a default, named or grouped value.
func (*Annotation) Tag ¶
func (a *Annotation) Tag() string
Tag returns the fx struct tag for the annotation, or "" for a default value.
type AnnotationIDType ¶
type AnnotationIDType int
ENUM(DEFAULT,NAMED,GROUPED)
const ( // AnnotationIDTypeDEFAULT is a AnnotationIDType of type DEFAULT. AnnotationIDTypeDEFAULT AnnotationIDType = iota // AnnotationIDTypeNAMED is a AnnotationIDType of type NAMED. AnnotationIDTypeNAMED // AnnotationIDTypeGROUPED is a AnnotationIDType of type GROUPED. AnnotationIDTypeGROUPED )
func ParseAnnotationIDType ¶
func ParseAnnotationIDType(name string) (AnnotationIDType, error)
ParseAnnotationIDType attempts to convert a string to a AnnotationIDType.
func (AnnotationIDType) IsValid ¶
func (x AnnotationIDType) IsValid() bool
IsValid provides a quick way to determine if the typed value is part of the allowed enumerated values
func (AnnotationIDType) MarshalText ¶
func (x AnnotationIDType) MarshalText() ([]byte, error)
MarshalText implements the text marshaller method.
func (AnnotationIDType) String ¶
func (x AnnotationIDType) String() string
String implements the Stringer interface.
func (*AnnotationIDType) UnmarshalText ¶
func (x *AnnotationIDType) UnmarshalText(text []byte) error
UnmarshalText implements the text unmarshaller method.
type AnnotationType ¶
type AnnotationType int
ENUM(MODULE,PROVIDE,INJECT,INVOKE,DEFAULT,CONFIG)
const ( // AnnotationTypeMODULE is a AnnotationType of type MODULE. AnnotationTypeMODULE AnnotationType = iota // AnnotationTypePROVIDE is a AnnotationType of type PROVIDE. AnnotationTypePROVIDE // AnnotationTypeINJECT is a AnnotationType of type INJECT. AnnotationTypeINJECT // AnnotationTypeINVOKE is a AnnotationType of type INVOKE. AnnotationTypeINVOKE // AnnotationTypeDEFAULT is a AnnotationType of type DEFAULT. AnnotationTypeDEFAULT // AnnotationTypeCONFIG is a AnnotationType of type CONFIG. AnnotationTypeCONFIG )
func ParseAnnotationType ¶
func ParseAnnotationType(name string) (AnnotationType, error)
ParseAnnotationType attempts to convert a string to a AnnotationType.
func (AnnotationType) IsValid ¶
func (x AnnotationType) IsValid() bool
IsValid provides a quick way to determine if the typed value is part of the allowed enumerated values
func (AnnotationType) MarshalText ¶
func (x AnnotationType) MarshalText() ([]byte, error)
MarshalText implements the text marshaller method.
func (AnnotationType) String ¶
func (x AnnotationType) String() string
String implements the Stringer interface.
func (*AnnotationType) UnmarshalText ¶
func (x *AnnotationType) UnmarshalText(text []byte) error
UnmarshalText implements the text unmarshaller method.
type Client ¶
type Client struct {
Factory ClientFactory
Name string // fx name of the client, "" for the default client
Plugins []string // in the declared order, nil when no consumer lists them
Consumers []string // keys of the components injecting the client, sorted
}
Client is a client inject builds through its factory: one per client type and name asked by @Inject parameters that no annotated function provides.
func Clients ¶
Clients returns the clients inject builds, sorted by type and name. A consumer without plugins takes the client as another consumer declares it. It is NotValid when plugins are listed for a client the application provides, a name is not reachable from an environment variable or two consumers of a client list different plugins, and AlreadyExists when two clients share a file (a client named "default" and the unnamed one).
func (Client) Ident ¶
Ident is the exported identifier of the client in generated code: its name plus its type ("QuoteClient", "DefaultClusterClient").
func (Client) Import ¶
func (c Client) Import(base string) ImportData
Import returns the import of the generated package holding the client, given the import path of the output dir (BaseImport).
func (Client) Module ¶
func (c Client) Module(base string) (ImportData, string)
Module returns the import of the client's package and the call of the module that provides the client.
func (Client) PluginRoot ¶
PluginRoot returns the config root of a plugin of the client.
type ClientData ¶
type ClientData struct {
Package string // package name of the generated file
Ident string // exported prefix: <Ident>Module
Var string // unexported prefix of the root constant, the once guard and the constructor
Desc string // the client, for the docs
Root string // config root of the client
Env string // environment variables that set its keys
Module string // name of the fx module
Target string // expression passed to fx.Provide
Type string // Go type of the client
Build string // ...WithConfigPath constructor of the factory
Constraint string // build constraint of the file, "" when it builds anywhere
Plugins []ClientPluginData // in the declared order
Names string // plugin names, comma separated
Close bool // the module closes the client when the app stops
Imports []ImportData // client type, factory, context module and plugins
}
ClientData feeds the template of a client inject builds.
type ClientFactory ¶
type ClientFactory struct {
Path string // import path of the client type's package
Type string // name of the client type, always used as a pointer
Package string // name of the client type's package ("resty", "redis", "mongo")
Build string // factory import path + "." + the ...WithConfigPath constructor
Root string // config root of the factory
Plugins map[string]ClientPlugin // by name: the last segment of the plugin's config root
Constraint string // build constraint the client needs ("cgo"), "" when it builds anywhere
Close bool // the generated module closes the client when the app stops
}
ClientFactory is a client type inject builds through its boost factory when an @Inject parameter asks for it.
func (ClientFactory) Constructor ¶
func (f ClientFactory) Constructor() string
Constructor returns the name of the factory's ...WithConfigPath constructor.
func (ClientFactory) FactoryPath ¶
func (f ClientFactory) FactoryPath() string
FactoryPath returns the import path of the factory.
func (ClientFactory) PluginNames ¶
func (f ClientFactory) PluginNames() []string
PluginNames returns the names of the factory's plugins, sorted.
type ClientPlugin ¶
type ClientPlugin struct {
Path string // import path of the plugin
New string // ...WithConfigPath constructor of the plugin
Register string // method passed to the factory, "" for Register
}
ClientPlugin is a plugin of a client factory. The value of its constructor registers itself through its Register method, or the method named by Register when the factory takes a plugin of another shape.
type ClientPluginData ¶
type ClientPluginData struct {
Name string // plugin name, the last segment of its config root
Alias string // import alias of the plugin
New string // ...WithConfigPath constructor of the plugin
Register string // method of the plugin passed to the factory
}
ClientPluginData is one plugin of a client.
type Component ¶
type Component struct {
Entry annotation.Entry
// Type is AnnotationTypePROVIDE for constructors and AnnotationTypeINVOKE
// for functions run when the application starts.
Type AnnotationType
// Provides maps a result index to its @Provide annotation.
Provides map[int]Annotation
// Injects maps a parameter index to its @Inject annotation. Parameters
// without @Inject are resolved by type.
Injects map[int]Annotation
// Default marks the default implementation (@Default) of the value it
// provides, among two or more providers of that value.
Default bool
// Config holds the keys of a @Config struct, which provides *Struct
// filled from config.
Config []ConfigField
}
Component is an annotated function that takes part in the injection graph.
func DefaultClientProvider ¶ added in v1.6.1
DefaultClientProvider returns the annotated function that provides the default client of type id ("<import path>.<Type>"), with an unnamed, ungrouped @Provide. inject builds that client only when none does.
func Provider ¶
Provider returns the component that provides the default value (no name, no group) of type tp, written as in package pkg ("*Handler" in package orders and "*orders.Handler" elsewhere are the same type), and the index of that result.
type ConfigData ¶
type ConfigData struct {
Package string // package name of the generated file
Struct string // name of the @Config struct
Var string // unexported prefix of the root key constant and the once guard
Source string // import path of the struct's package
Alias string // import alias of the struct's package
Root string // root config key of the struct
Keys []ConfigKeyData // in field order
Time bool // a default is a time.Duration
}
ConfigData feeds the template of the module of a @Config struct.
type ConfigField ¶
type ConfigField struct {
Name string // Go name of the field
Segment string // key segment under the struct's root key
Type string // supported type of the field ("time.Duration" for a duration)
Default string // Go literal of the default value, of the field type
Desc string // description of the key
Hide bool // the value is a secret (config.WithHide)
}
ConfigField is a config key of a @Config struct.
type ConfigKeyData ¶
type ConfigKeyData struct {
Segment string // key segment under the root
Value string // Go literal of the default
Desc string // Go literal of the description
Env string // environment variable that sets the key
Hide bool // the value is a secret
}
ConfigKeyData is one config key of a @Config struct.
type Generator ¶
type Generator struct {
// contains filtered or unexported fields
}
Generator writes one fx module per component of the graph, mirroring the import path of the annotated function under OutputDir, plus a root module.go whose Module() includes all of them.
func NewGenerator ¶
func NewGenerator(g *graph.Graph[Component], opts GeneratorOptions) *Generator
NewGenerator returns a generator for the graph.
type GeneratorOptions ¶
type GeneratorOptions struct {
// ModulePath is the Go module path of the application ("module" in go.mod).
ModulePath string
// ModuleDir is the absolute root directory of that module.
ModuleDir string
// OutputDir is the absolute directory that receives the generated code.
// It must be inside ModuleDir so the generated packages can be imported.
OutputDir string
// DefaultClients are the client types ("<import path>.<Type>", like
// github.com/nats-io/nats.go.Conn) whose default client is generated even
// when no @Inject parameter asks for it: another generator of OutputDir
// wires it, as builder does for the adapter of a @Function. The root
// module leaves them out. Leave out a type the application provides.
DefaultClients []string
}
GeneratorOptions tells the generator where the application lives and where the generated code goes.
func (GeneratorOptions) BaseImport ¶
func (o GeneratorOptions) BaseImport() (string, error)
BaseImport returns the import path of OutputDir. It is NotValid when a field is missing or OutputDir is not a subdirectory of ModuleDir.
type Implementation ¶
type Implementation struct {
Type string // name of the provided type ("Service")
Path string // import path of the package declaring the type
Name string // fx name of the value, "" for the default value
Default string // package name of the @Default member
Members map[string]Component // by package name: the implementation's name
}
Implementation is an implementation set: two or more functions providing the same non-group value, one of them marked @Default. The generator writes a switch module that includes only the member a config key names.
func ImplementationOf ¶
ImplementationOf returns the implementation set comp is a member of.
func Implementations ¶
func Implementations(g *graph.Graph[Component]) ([]Implementation, error)
Implementations returns the implementation sets of the graph, sorted by type and name. It is NotValid when a set has more than one @Default, a @Default value has no other provider, a member does not have exactly one @Provide, two members share a package name, the members do not provide the same named type or a consumer of the set lives in a member's package.
func (Implementation) Chosen ¶
func (i Implementation) Chosen(base string) (ImportData, string)
Chosen returns the import of the switch package and the call returning the name of the chosen implementation.
func (Implementation) File ¶
func (i Implementation) File(base string) string
File returns the path, relative to OutputDir, of the switch file, given the import path of the output dir (BaseImport).
func (Implementation) Ident ¶
func (i Implementation) Ident() string
Ident is the exported identifier of the set in generated code: the type name, plus the value name when the value is named ("Service", "ServiceFormal").
func (Implementation) Import ¶
func (i Implementation) Import(base string) ImportData
Import returns the import of the generated package holding the switch, given the import path of the output dir (BaseImport).
func (Implementation) Key ¶
func (i Implementation) Key(modulePath string) string
Key returns the config key that chooses the implementation, given the Go module path of the application: the type's package path relative to the module (its full import path outside the module), plus the value name, plus "implementation", in dots. Every segment is lowercased, "_" splits segments and "a-b" becomes "aB", so the key is reachable from an environment variable (FOO_BAR__BAZ -> foo.barBaz).
func (Implementation) Module ¶
func (i Implementation) Module(base string) (ImportData, string)
Module returns the import of the switch package and the call of the module that includes the chosen implementation.
func (Implementation) Names ¶
func (i Implementation) Names() []string
Names returns the names of the implementations, sorted.
type ImplementationCase ¶
ImplementationCase is one implementation of a switch and its module call.
type ImplementationData ¶
type ImplementationData struct {
Package string // package name of the generated file
Ident string // exported prefix: <Ident>Implementation, <Ident>ImplementationModule
Var string // unexported prefix of the key constant and the once guard
Type string // path.Type of the switched value, for the docs
Key string // config key
Default string // name of the default implementation
Names string // implementation names, comma separated
Cases []ImplementationCase // sorted by name
Imports []ImportData // generated packages of the implementations
}
ImplementationData feeds the template of the switch of an implementation set.
type ImportData ¶
ImportData is an aliased import of a generated file.
func ClientModule ¶ added in v1.6.1
func ClientModule(base, id string) (ImportData, string, error)
ClientModule returns the import of the package inject generates for the default client of type id ("<import path>.<Type>") and the call of the module that provides it, given the import path of the output dir (BaseImport). It is NotValid for a type inject does not build.
func ModuleOf ¶
func ModuleOf(base string, entry annotation.Entry) (ImportData, string)
ModuleOf returns the import of the package generated for the component declared by entry, given the import path of the output dir (BaseImport), and the call of its module function, such as gen_greet_1a2b3c4d.NewGreeterModule() (or OptionsModule() for a @Config struct Options).
type ModuleAttr ¶
type ModuleAttr int
ENUM(MODULE,PATH,PACKAGE,FUNC)
const ( // ModuleAttrMODULE is a ModuleAttr of type MODULE. ModuleAttrMODULE ModuleAttr = iota // ModuleAttrPATH is a ModuleAttr of type PATH. ModuleAttrPATH // ModuleAttrPACKAGE is a ModuleAttr of type PACKAGE. ModuleAttrPACKAGE // ModuleAttrFUNC is a ModuleAttr of type FUNC. ModuleAttrFUNC )
func ParseModuleAttr ¶
func ParseModuleAttr(name string) (ModuleAttr, error)
ParseModuleAttr attempts to convert a string to a ModuleAttr.
func (ModuleAttr) IsValid ¶
func (x ModuleAttr) IsValid() bool
IsValid provides a quick way to determine if the typed value is part of the allowed enumerated values
func (ModuleAttr) MarshalText ¶
func (x ModuleAttr) MarshalText() ([]byte, error)
MarshalText implements the text marshaller method.
func (ModuleAttr) String ¶
func (x ModuleAttr) String() string
String implements the Stringer interface.
func (*ModuleAttr) UnmarshalText ¶
func (x *ModuleAttr) UnmarshalText(text []byte) error
UnmarshalText implements the text unmarshaller method.
type ModuleData ¶
type ModuleData struct {
Package string // package name of the generated file
Func string // annotated function name
Source string // import path of the annotated function
Kind string // "Provide" or "Invoke"
Target string // expression passed to fx.Provide/fx.Invoke
Deps []string // module calls of the components it depends on
Imports []ImportData // imports besides sync and fx
}
ModuleData feeds the module template of one component.
type Publisher ¶ added in v1.6.0
type Publisher struct {
Consumers []string // keys of the components injecting it, sorted
}
Publisher is the *publisher.Publisher inject builds: one for the application, with the driver PublisherDriverKey names.
func PublisherOf ¶ added in v1.6.0
PublisherOf returns the publisher inject builds: its consumers are the components with an unnamed, ungrouped @Inject of *publisher.Publisher that no annotated function provides. It has no consumers when inject builds none.
func (Publisher) File ¶ added in v1.6.0
File returns the path, relative to OutputDir, of the publisher's file.
func (Publisher) Import ¶ added in v1.6.0
func (p Publisher) Import(base string) ImportData
Import returns the import of the generated package holding the publisher, given the import path of the output dir (BaseImport).
type PublisherCase ¶ added in v1.6.0
PublisherCase is one driver of the publisher and the fx options wiring it.
type PublisherData ¶ added in v1.6.0
type PublisherData struct {
Key string // config key naming the driver
Default string // driver when the key is unset
Names string // driver names, comma separated
Cases []PublisherCase // sorted by name
Imports []ImportData // packages of the drivers and clients built anywhere
}
PublisherData feeds the template of the publisher inject builds.
type PublisherDriver ¶ added in v1.6.0
type PublisherDriver struct {
Name string // value of PublisherDriverKey
Path string // import path of the driver package, whose New builds it
Package string // package name of the driver
Client string // "<import path>.<Type>" of the client New takes, "" when none
}
PublisherDriver is a driver of the publisher that the generated module can wire.
type PublisherDriverData ¶ added in v1.6.0
type PublisherDriverData struct {
Name string // driver name
Constraint string // build constraint of its client
Options string // fx options wiring the driver and its client
Imports []ImportData // packages of the driver and its client
}
PublisherDriverData feeds the templates of a driver whose client builds only under a constraint: its file and the fallback without the constraint.
type RootData ¶
type RootData struct {
Package string
Imports []ImportData
Modules []string
}
RootData feeds the template of the root module.go.
Source Files
¶
Directories
¶
| Path | Synopsis |
|---|---|
|
cmd
|
|
|
inject
command
Command inject generates fx modules from @Provide, @Inject and @Invoke annotations.
|
Command inject generates fx modules from @Provide, @Inject and @Invoke annotations. |
|
examples
|
|
|
clients
command
Command clients wires a NATS connection, a Pub/Sub client, gocql sessions of both drivers and a Bigtable client that inject builds from @Inject, and stops them with the app.
|
Command clients wires a NATS connection, a Pub/Sub client, gocql sessions of both drivers and a Bigtable client that inject builds from @Inject, and stops them with the app. |
|
clients/catalog
Package catalog stores the prices of the catalog in Bigtable through the "catalog" client.
|
Package catalog stores the prices of the catalog in Bigtable through the "catalog" client. |
|
clients/events
Package events publishes events over the "events" NATS connection.
|
Package events publishes events over the "events" NATS connection. |
|
clients/ledger
Package ledger reads the Cassandra/ScyllaDB cluster through the "ledger" session of the Apache driver (github.com/apache/cassandra-gocql-driver/v2).
|
Package ledger reads the Cassandra/ScyllaDB cluster through the "ledger" session of the Apache driver (github.com/apache/cassandra-gocql-driver/v2). |
|
clients/orders
Package orders manages the Pub/Sub topics of orders through the "orders" client.
|
Package orders manages the Pub/Sub topics of orders through the "orders" client. |
|
clients/store
Package store reads the Cassandra/ScyllaDB cluster through the "store" session.
|
Package store reads the Cassandra/ScyllaDB cluster through the "store" session. |
|
publisher
command
Command publisher announces a created order through the publisher inject builds, on the driver boost.wrapper.publisher.driver.name chooses (noop by default).
|
Command publisher announces a created order through the publisher inject builds, on the driver boost.wrapper.publisher.driver.name chooses (noop by default). |
|
publisher/domain/model/entity
Package entity holds the entities of the example.
|
Package entity holds the entities of the example. |
|
publisher/domain/publisher/ordercreated
Package ordercreated announces that an order was created.
|
Package ordercreated announces that an order was created. |
|
publisher/publisher/ordercreated/boost
Package boost implements ordercreated.Publisher on boost's wrapper/publisher, whose driver config chooses.
|
Package boost implements ordercreated.Publisher on boost's wrapper/publisher, whose driver config chooses. |
|
simple
command
Command simple wires an fx application from inject annotations.
|
Command simple wires an fx application from inject annotations. |
|
simple/app
Package app consumes the values provided by the other packages.
|
Package app consumes the values provided by the other packages. |
|
simple/greeting
Package greeting provides the greeters used by the example.
|
Package greeting provides the greeters used by the example. |
|
simple/names
Package names contributes values to the "names" group.
|
Package names contributes values to the "names" group. |