package org.elixir_lang.psi.call; import com.intellij.psi.PsiElement; import org.jetbrains.annotations.Nullable; /** * An maybe exported call definition in a source or compiled module */ public interface MaybeExported extends PsiElement { int UNEXPORTED_ARITY = -1; /** * The arity of the function or macro that was exported into the compiled .beam file OR the name of {@code def} or * {@code defmacro} in the decompiled source. * * @return {@link #UNEXPORTED_ARITY} if {@link #isExported()} is {@code false} OR the element comes from normal * source code and the {@link org.elixir_lang.structure_view.element.CallDefinitionClause#nameArityRange(Call)} * has an actual range for the arity range. */ int exportedArity(); /** * The name that was exported into the compiled .beam file OR the name of {@code def} or {@code defmacro} in the * decompiled source. * * @return {@code null} if {@link #isExported()} is {@code false}. */ @Nullable String exportedName(); /** * * @return {@code true} if {@code def} or {@code defmacro} */ boolean isExported(); }