package gorandom

import (
	
	
	

	
)

// String returns random string of given length.
//
// Parameters:
//
//	numbers: Include numbers to random string
//	letters: Include english letters to random string
//	specials: Include special characters to random string
//	length: Random string length
func (, ,  bool,  int) (string, error) {
	var  []string
	var  string

	if  == 0 ||  < 0 {
		return "", errors.New("string length must be greater than zero")
	}

	if !( ||  || ) {
		return "", errors.New("at least one of letters, special characters or numbers must be included")
	}

	 = internal.GetCharset(, , ) // Get charset
	rand.Seed(time.Now().UnixNano())                          // Set start point randomly

	for  := 0;  < ;  += 1 {
		 += [rand.Intn(len())] // Generate random string
	}

	return , nil
}