<reponame>Befrish/jqwik-vavr
package de.befrish.jqwik.vavr.providers;

import de.befrish.jqwik.vavr.arbitraries.VavrLazyArbitrary;
import de.befrish.jqwik.vavr.providers.base.AbstractSingleTypeArbitraryProvider;
import io.vavr.Lazy;
import net.jqwik.api.Arbitrary;
import net.jqwik.api.providers.ArbitraryProvider;
import org.kohsuke.MetaInfServices;

@MetaInfServices(ArbitraryProvider.class)
public class VavrLazyArbitraryProvider extends AbstractSingleTypeArbitraryProvider {

    @Override
    protected Class<?> getProvidedType() {
        return Lazy.class;
    }

    @Override
    protected VavrLazyArbitrary<?> create(final Arbitrary<?> innerArbitrary) {
        return new VavrLazyArbitrary<>(innerArbitrary);
    }

}
