summaryrefslogtreecommitdiff
path: root/vendor/github.com/google/wire/wire.go
diff options
context:
space:
mode:
authorDave Henderson <dhenderson@gmail.com>2020-01-15 18:00:41 -0500
committerDave Henderson <dhenderson@gmail.com>2020-01-15 18:49:57 -0500
commit2fbcfc68d2b8f948053f02f73f6e01a7fb7724cb (patch)
treebcd62b43da4040fd4d589bbe044fb1b42979e716 /vendor/github.com/google/wire/wire.go
parent42bfed36830e6682612f05f67c6543c2613f8e59 (diff)
Removing vendor/ folder
Signed-off-by: Dave Henderson <dhenderson@gmail.com>
Diffstat (limited to 'vendor/github.com/google/wire/wire.go')
-rw-r--r--vendor/github.com/google/wire/wire.go191
1 files changed, 0 insertions, 191 deletions
diff --git a/vendor/github.com/google/wire/wire.go b/vendor/github.com/google/wire/wire.go
deleted file mode 100644
index 941d6c65..00000000
--- a/vendor/github.com/google/wire/wire.go
+++ /dev/null
@@ -1,191 +0,0 @@
-// Copyright 2018 The Wire Authors
-//
-// Licensed under the Apache License, Version 2.0 (the "License");
-// you may not use this file except in compliance with the License.
-// You may obtain a copy of the License at
-//
-// https://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing, software
-// distributed under the License is distributed on an "AS IS" BASIS,
-// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
-// See the License for the specific language governing permissions and
-// limitations under the License.
-
-// Package wire contains directives for Wire code generation.
-// For an overview of working with Wire, see the user guide at
-// https://github.com/google/wire/blob/master/docs/guide.md
-//
-// The directives in this package are used as input to the Wire code generation
-// tool. The entry point of Wire's analysis are injector functions: function
-// templates denoted by only containing a call to Build. The arguments to Build
-// describes a set of providers and the Wire code generation tool builds a
-// directed acylic graph of the providers' output types. The generated code will
-// fill in the function template by using the providers from the provider set to
-// instantiate any needed types.
-package wire
-
-// ProviderSet is a marker type that collects a group of providers.
-type ProviderSet struct{}
-
-// NewSet creates a new provider set that includes the providers in its
-// arguments. Each argument is a function value, a provider set, a call to
-// Struct, a call to Bind, a call to Value, a call to InterfaceValue or a call
-// to FieldsOf.
-//
-// Passing a function value to NewSet declares that the function's first
-// return value type will be provided by calling the function. The arguments
-// to the function will come from the providers for their types. As such, all
-// the function's parameters must be of non-identical types. The function may
-// optionally return an error as its last return value and a cleanup function
-// as the second return value. A cleanup function must be of type func() and is
-// guaranteed to be called before the cleanup function of any of the
-// provider's inputs. If any provider returns an error, the injector function
-// will call all the appropriate cleanup functions and return the error from
-// the injector function.
-//
-// Passing a ProviderSet to NewSet is the same as if the set's contents
-// were passed as arguments to NewSet directly.
-//
-// The behavior of passing the result of a call to other functions in this
-// package are described in their respective doc comments.
-//
-// For compatibility with older versions of Wire, passing a struct value of type
-// S to NewSet declares that both S and *S will be provided by creating a new
-// value of the appropriate type by filling in each field of S using the
-// provider of the field's type. This form is deprecated and will be removed in
-// a future version of Wire: new providers sets should use wire.Struct.
-func NewSet(...interface{}) ProviderSet {
- return ProviderSet{}
-}
-
-// Build is placed in the body of an injector function template to declare the
-// providers to use. The Wire code generation tool will fill in an
-// implementation of the function. The arguments to Build are interpreted the
-// same as NewSet: they determine the provider set presented to Wire's
-// dependency graph. Build returns an error message that can be sent to a call
-// to panic().
-//
-// The parameters of the injector function are used as inputs in the dependency
-// graph.
-//
-// Similar to provider functions passed into NewSet, the first return value is
-// the output of the injector function, the optional second return value is a
-// cleanup function, and the optional last return value is an error. If any of
-// the provider functions in the injector function's provider set return errors
-// or cleanup functions, the corresponding return value must be present in the
-// injector function template.
-//
-// Examples:
-//
-// func injector(ctx context.Context) (*sql.DB, error) {
-// wire.Build(otherpkg.FooSet, myProviderFunc)
-// return nil, nil
-// }
-//
-// func injector(ctx context.Context) (*sql.DB, error) {
-// panic(wire.Build(otherpkg.FooSet, myProviderFunc))
-// }
-func Build(...interface{}) string {
- return "implementation not generated, run wire"
-}
-
-// A Binding maps an interface to a concrete type.
-type Binding struct{}
-
-// Bind declares that a concrete type should be used to satisfy a dependency on
-// the type of iface. iface must be a pointer to an interface type, to must be a
-// pointer to a concrete type.
-//
-// Example:
-//
-// type Fooer interface {
-// Foo()
-// }
-//
-// type MyFoo struct{}
-//
-// func (MyFoo) Foo() {}
-//
-// var MySet = wire.NewSet(
-// wire.Struct(new(MyFoo))
-// wire.Bind(new(Fooer), new(MyFoo)))
-func Bind(iface, to interface{}) Binding {
- return Binding{}
-}
-
-// bindToUsePointer is detected by the wire tool to indicate that Bind's second argument should take a pointer.
-// See https://github.com/google/wire/issues/120 for details.
-const bindToUsePointer = true
-
-// A ProvidedValue is an expression that is copied to the generated injector.
-type ProvidedValue struct{}
-
-// Value binds an expression to provide the type of the expression.
-// The expression may not be an interface value; use InterfaceValue for that.
-//
-// Example:
-//
-// var MySet = wire.NewSet(wire.Value([]string(nil)))
-func Value(interface{}) ProvidedValue {
- return ProvidedValue{}
-}
-
-// InterfaceValue binds an expression to provide a specific interface type.
-// The first argument is a pointer to the interface which user wants to provide.
-// The second argument is the actual variable value whose type implements the
-// interface.
-//
-// Example:
-//
-// var MySet = wire.NewSet(wire.InterfaceValue(new(io.Reader), os.Stdin))
-func InterfaceValue(typ interface{}, x interface{}) ProvidedValue {
- return ProvidedValue{}
-}
-
-// A StructProvider represents a named struct.
-type StructProvider struct{}
-
-// Struct specifies that the given struct type will be provided by filling in the fields in the struct that have the names given.
-//
-// The first argument must be a pointer to the struct type. For a struct type
-// Foo, Wire will use field-filling to provide both Foo and *Foo. The remaining
-// arguments are field names to fill in. As a special case, if a single name "*"
-// is given, then all of the fields in the struct will be filled in.
-//
-// For example:
-//
-// type S struct {
-// MyFoo *Foo
-// MyBar *Bar
-// }
-// var Set = wire.NewSet(wire.Struct(new(S), "MyFoo")) -> inject only S.MyFoo
-// var Set = wire.NewSet(wire.Struct(new(S), "*")) -> inject all fields
-func Struct(structType interface{}, fieldNames ...string) StructProvider {
- return StructProvider{}
-}
-
-// StructFields is a collection of the fields from a struct.
-type StructFields struct{}
-
-// FieldsOf declares that the fields named of the given struct type will be used
-// to provide the types of those fields. The structType argument must be a
-// pointer to the struct or a pointer to a pointer to the struct it wishes to reference.
-//
-// The following example would provide *Foo and *Bar using S.MyFoo and S.MyBar respectively:
-//
-// type S struct {
-// MyFoo *Foo
-// MyBar *Bar
-// }
-//
-// func NewStruct() S { /* ... */ }
-// var Set = wire.NewSet(wire.FieldsOf(new(S), "MyFoo", "MyBar"))
-//
-// or
-//
-// func NewStruct() *S { /* ... */ }
-// var Set = wire.NewSet(wire.FieldsOf(new(*S), "MyFoo", "MyBar"))
-func FieldsOf(structType interface{}, fieldNames ...string) StructFields {
- return StructFields{}
-}