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 }