package gnet

import (
	"encoding/hex"
	"strings"
)

const (
	hexPrefix = "0x"
)

type String string

func (s String) String() string {
	return string(s)
}

func (s String) Trim(str ...string) String {
	ns := string(s)
	for _, x := range str {
		ns = strings.ReplaceAll(ns, x, "")
	}
	return String(ns)
}

func (s String) ToByte() Byte {
	return Byte(s[0])
}

func (s String) ToBytes() Bytes {
	return Bytes(s)
}

func (s String) Hex() Bytes {
	str := string(s)
	if strings.Contains(str, hexPrefix) {
		str = strings.ReplaceAll(str, hexPrefix, "")
	}
	if strings.ContainsRune(str, 32) {
		str = strings.ReplaceAll(str, " ", "")
	}
	dst, err := hex.DecodeString(str)
	if err != nil {
		return nil
	}
	return dst
}
