package org.bytedeco.javacpp.annotation;
import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import org.bytedeco.javacpp.FunctionPointer;
import org.bytedeco.javacpp.tools.Generator;
/**
* A shortcut annotation to {@link Cast} that simply adds {@code const} to the parameter type.
* Can also be declared on a {@link FunctionPointer} in the case of {@code const} functions.
*
* @see Generator
*
* @author Samuel Audet
*/
@Documented @Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.TYPE, ElementType.METHOD, ElementType.PARAMETER})
public @interface Const {
/** If {@code true}, applies {@code const} to the value and to the pointer, respectively. */
boolean[] value() default {true, false};
}