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

Internal data bundles used by injectors during application.

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

- Class Summary
  Class | Description
  --- | ---
  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
  Exception | Description
  --- | ---
  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
  Annotation Type | Description
  --- | ---
  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.