default <T> Codec<T, G> constrain(final Codec<T, G> codec) {
		return Codec.of(constrain(codec.encoding()), codec.decoder());
	}
Wraps the given codec into a codec, which obeys {@code this} constraint.

@since 6.1

@see #constrain(Factory)
@see #constrain(InvertibleCodec)

@param codec the codec to wrap
@param <T> the argument type of given problem
@return the wrapped codec, which obeys {@code this} constraint
@throws NullPointerException if the given {@code codec} is {@code null}
jenetics/src/main/java/io/jenetics/engine/Constraint.java