# Package org.spongepowered.asm.mixin.injection.struct

Internal data bundles used by injectors during application.

Interface Summary
IChainedDecoration<T>: An InjectionNode decoration which can chain to a previously registered decoration with the same type and key.

Class Summary
ArgOffsets: Decoration which stores a linear offset of arguments when a node replacement results in a call to a method with the same arguments as the original (replaced) call but offset by some fixed amount.
CallbackInjectionInfo: Information about a callback to inject, usually specified by `Inject`
Constructor: A `Target` which is a constructor
InjectionInfo: Contructs information about an injection from an `Inject` annotation and allows the injection to be processed.
InjectionNodes: Used to keep track of instruction nodes in a `Target` method which are targetted by various types of injector.
InjectionNodes.InjectionNode: A node targetted by one or more injectors.
InjectionPointAnnotationContext: Specialised SelectorAnnotationContext for injection points
InjectionPointData: Data read from an `At` annotation and passed into an InjectionPoint ctor
InjectorGroupInfo: Information store for injector groups
InjectorGroupInfo.Map: Storage for injector groups
MemberInfo: Struct which defines an Explcit Target selector, See `ITargetSelector` for other supported selector types.
ModifyArgInjectionInfo: Information about a `ModifyArg` injector
ModifyArgsInjectionInfo: Information about a `ModifyArgs` injector
ModifyConstantInjectionInfo: Information about a constant modifier injector
ModifyVariableInjectionInfo: Information about a `ModifyVariable` injector
RedirectInjectionInfo: Information about a redirector injector
SelectorAnnotationContext: Narrowed context for selectors in annotations which are themselves inside a parent annotation, for example @At annotations within a parent @Inject annotation.
Target: Information about the current injection target (method) which bundles common injection context with the target method in order to allow injectors to interoperate.

Exception Summary
InvalidMemberDescriptorException: Thrown when a `MemberInfo` fails basic syntax validation
TargetNotSupportedException: Exception thrown when target selector is not valid for the supplied target context during `ITargetSelector.attach(org.spongepowered.asm.mixin.injection.selectors.ISelectorContext)`

Annotation Types Summary
InjectionInfo.AnnotationType: Decoration for subclasses which indicates the injector annotation that the subclass handles
InjectionInfo.HandlerPrefix: Decoration for subclasses which specifies the prefix to use when conforming annotated handler methods
InjectionInfo.InjectorOrder: Decoration for subclasses which specifies the order (phase) in which the injector should be applied relative to other injectors.