diff options
Diffstat (limited to 'src/main/java/org/zwobble/couscous/values/MethodValue.java')
| -rw-r--r-- | src/main/java/org/zwobble/couscous/values/MethodValue.java | 18 |
1 files changed, 16 insertions, 2 deletions
diff --git a/src/main/java/org/zwobble/couscous/values/MethodValue.java b/src/main/java/org/zwobble/couscous/values/MethodValue.java index 38ef1d5..fe23f94 100644 --- a/src/main/java/org/zwobble/couscous/values/MethodValue.java +++ b/src/main/java/org/zwobble/couscous/values/MethodValue.java @@ -1,7 +1,21 @@ package org.zwobble.couscous.values; import java.util.List; +import java.util.function.BiFunction; -public interface MethodValue { - InterpreterValue call(List<InterpreterValue> arguments); +import org.zwobble.couscous.interpreter.Arguments; + +import lombok.AccessLevel; +import lombok.Getter; +import lombok.Value; + +@Value +public class MethodValue<T> { + List<ConcreteType<?>> argumentTypes; + @Getter(value=AccessLevel.NONE) + BiFunction<T, Arguments, InterpreterValue> apply; + + public InterpreterValue apply(T receiver, Arguments arguments) { + return apply.apply(receiver, arguments); + } } |
