You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: int4range.go
    path of file: ./repos/tegola/vendor/github.com/jackc/pgtype
    
    the code of the file until where you have to start completion: package pgtype

import (
	"database/sql/driver"
	"fmt"

	"github.com/jackc/pgio"
)

type Int4range struct {
	Lower     Int4
	Upper     Int4
	LowerType BoundType
	UpperType BoundType
	Status    Status
}

func (dst *Int4ra
    
func (dst *Int4range) Set(src interface{}) error {
	// untyped nil and typed nil interfaces are different
	if src == nil {
		*dst = Int4range{Status: Null}
		return nil
	}

	switch value := src.(type) {
	case Int4range:
		*dst = value
	case *Int4range:
		*dst = *value
	case string:
		return dst.DecodeText(nil, []byte(value))
	default:
		return fmt.Errorf("cannot convert %v to Int4range", src)
	}

	return nil
}