# SciJava Struct: A lightweight framework for collecting Members

This library provides a lightweight framework for collecting sets of typed fields. The project centers around two `Class`es:

## `Member`: A typed field

`Member`s enrich a generic `Type` with a collection of metadata (such as a name, a description, an I/O type, etc.)

## `Struct`: A collection of `Member`s

`Struct`s are nothing more than collections of `Member`s.

## So what? How is this useful?

While `Struct`s can be valuable in describing `Method`s, they can be particuarly useful when describing `Class`es and shine under a [Dependency Injection](https://en.wikipedia.org/wiki/Dependency_injection) paradigm. In such situations, we need a data structure to define **all** inputs to the injectable `Class`, be they constructor or `FunctionalInterface` arguments, or simply `Field`s that must be injected beforehand.

To see SciJava Struct in action, check out the SciJava Ops project!
