001    package org.bridj.ann;
002    
003    import org.bridj.StructIO;
004    
005    import java.lang.annotation.ElementType;
006    import java.lang.annotation.Inherited;
007    import java.lang.annotation.Retention;
008    import java.lang.annotation.RetentionPolicy;
009    import java.lang.annotation.Target;
010    
011    /**
012     * Struct details such as explicit fields packing and padding.
013     */
014    @Target({ElementType.CONSTRUCTOR, ElementType.FIELD, ElementType.METHOD, ElementType.TYPE})
015    @Retention(RetentionPolicy.RUNTIME)
016    @Inherited
017    public @interface Struct {
018            int pack() default -1;
019            //int padding() default -1;
020            int fieldCount() default -1;
021            int size() default -1;
022            Class<? extends StructIO.Customizer> customizer() default StructIO.Customizer.class;
023    }