func (r *RTorrent) WithHTTPClient(client *http.Client) *RTorrent {
	r.xmlrpcClient = xmlrpc.NewClientWithHTTPClient(r.addr, client)
	return r
}
WithHTTPClient allows you to a provide a custom http.Client.
package rtorrent
import (
	"fmt"
	"net/http"
	"time"
	"github.com/mrobinsn/go-rtorrent/xmlrpc"
	"github.com/pkg/errors"
)
type RTorrent struct {
	addr         string
	xmlrpcClient *xmlrpc.Client
}
type FieldValue struct {
	Field Field
	Value string
}
type Torrent struct {
	Hash      string
	Name      string
	Path      string
	Size      int
	Label     string
	Completed bool
	Ratio     float64
	Created   time.Time
	Started   time.Time
	Finished  time.Time
}
type Status struct {
	Completed      bool
	CompletedBytes int
	DownRate       int
	UpRate         int
	Ratio          float64
	Size           int
}
type File struct {
	Path string
	Size int
}
type Field string
type View string
const (
	ViewMain View = "main"
	ViewStarted View = "started"
	ViewStopped View = "stopped"
	ViewHashing View = "hashing"
	ViewSeeding View = "seeding"
	DName Field = "d.name"
	DLabel Field = "d.custom1"
	DSizeInBytes Field = "d.size_bytes"
	DHash Field = "d.hash"
	DBasePath Field = "d.base_path"
	DIsActive Field = "d.is_active"
	DRatio Field = "d.ratio"
	DComplete Field = "d.complete"
	DCompletedBytes Field = "d.completed_bytes"
	DDownRate Field = "d.down.rate"
	DUpRate Field = "d.up.rate"
	DCreationTime Field = "d.creation_date"
	DFinishedTime Field = "d.timestamp.finished"
	DStartedTime Field = "d.timestamp.started"
	FPath Field = "f.path"
	FSizeInBytes Field = "f.size_bytes"
)
func (f Field) Query() string {
	return fmt.Sprintf("%s=", f)
}
func (f Field) SetValue(value string) *FieldValue {
	return &FieldValue{f, value}
}
func (f Field) Cmd() string {
	return string(f)
}
func (f *FieldValue) String() string {
	return fmt.Sprintf("%s.set=\"%s\"", f.Field, f.Value)
}
func (t *Torrent) Pretty() string {
	return fmt.Sprintf("Torrent:\n\tHash: %v\n\tName: %v\n\tPath: %v\n\tLabel: %v\n\tSize: %v bytes\n\tCompleted: %v\n\tRatio: %v\n", t.Hash, t.Name, t.Path, t.Label, t.Size, t.Completed, t.Ratio)
}
func (f *File) Pretty() string {
	return fmt.Sprintf("File:\n\tPath: %v\n\tSize: %v bytes\n", f.Path, f.Size)
}
func New(addr string, insecure bool) *RTorrent {
	return &RTorrent{
		addr:         addr,
		xmlrpcClient: xmlrpc.NewClient(addr, insecure),
	}
}