func (c *Client) D3Item(ctx context.Context, itemSlug, itemID string) (*d3c.Item, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/d3/data/item/%s-%s", itemSlug, itemID),
		&d3c.Item{},
	)
	return dat.(*d3c.Item), header, err
}
D3Item returns item data
package blizzard
import (
	"context"
	"fmt"
	"github.com/FuzzyStatic/blizzard/d3c"
)
func (c *Client) D3ActIndex(ctx context.Context) (*d3c.ActIndex, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		"/d3/data/act",
		&d3c.ActIndex{},
	)
	return dat.(*d3c.ActIndex), header, err
}
func (c *Client) D3Act(ctx context.Context, id int) (*d3c.Act, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/d3/data/act/%d", id),
		&d3c.Act{},
	)
	return dat.(*d3c.Act), header, err
}
func (c *Client) D3Blacksmith(ctx context.Context) (*d3c.Artisan, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		"/d3/data/artisan/blacksmith",
		&d3c.Artisan{},
	)
	return dat.(*d3c.Artisan), header, err
}
func (c *Client) D3Jeweler(ctx context.Context) (*d3c.Artisan, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		"/d3/data/artisan/jeweler",
		&d3c.Artisan{},
	)
	return dat.(*d3c.Artisan), header, err
}
func (c *Client) D3Mystic(ctx context.Context) (*d3c.Artisan, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		"/d3/data/artisan/mystic",
		&d3c.Artisan{},
	)
	return dat.(*d3c.Artisan), header, err
}
func (c *Client) D3BlacksmithRecipe(ctx context.Context, recipeSlug string) (*d3c.Recipe, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/d3/data/artisan/blacksmith/recipe/%s", recipeSlug),
		&d3c.Recipe{},
	)
	return dat.(*d3c.Recipe), header, err
}
func (c *Client) D3JewelerRecipe(ctx context.Context, recipeSlug string) (*d3c.Recipe, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/d3/data/artisan/jeweler/recipe/%s", recipeSlug),
		&d3c.Recipe{},
	)
	return dat.(*d3c.Recipe), header, err
}
func (c *Client) D3Enchantress(ctx context.Context) (*d3c.Follower, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		"/d3/data/follower/enchantress",
		&d3c.Follower{},
	)
	return dat.(*d3c.Follower), header, err
}
func (c *Client) D3Scoundrel(ctx context.Context) (*d3c.Follower, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		"/d3/data/follower/scoundrel",
		&d3c.Follower{},
	)
	return dat.(*d3c.Follower), header, err
}
func (c *Client) D3Templar(ctx context.Context) (*d3c.Follower, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		"/d3/data/follower/templar",
		&d3c.Follower{},
	)
	return dat.(*d3c.Follower), header, err
}
func (c *Client) D3Barbarian(ctx context.Context) (*d3c.Hero, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		"/d3/data/hero/barbarian",
		&d3c.Hero{},
	)
	return dat.(*d3c.Hero), header, err
}
func (c *Client) D3Crusader(ctx context.Context) (*d3c.Hero, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		"/d3/data/hero/crusader",
		&d3c.Hero{},
	)
	return dat.(*d3c.Hero), header, err
}
func (c *Client) D3DemonHunter(ctx context.Context) (*d3c.Hero, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		"/d3/data/hero/demon-hunter",
		&d3c.Hero{},
	)
	return dat.(*d3c.Hero), header, err
}
func (c *Client) D3Monk(ctx context.Context) (*d3c.Hero, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		"/d3/data/hero/monk",
		&d3c.Hero{},
	)
	return dat.(*d3c.Hero), header, err
}
func (c *Client) D3Necromancer(ctx context.Context) (*d3c.Hero, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		"/d3/data/hero/necromancer",
		&d3c.Hero{},
	)
	return dat.(*d3c.Hero), header, err
}
func (c *Client) D3Wizard(ctx context.Context) (*d3c.Hero, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		"/d3/data/hero/wizard",
		&d3c.Hero{},
	)
	return dat.(*d3c.Hero), header, err
}
func (c *Client) D3WitchDoctor(ctx context.Context) (*d3c.Hero, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		"/d3/data/hero/witch-doctor",
		&d3c.Hero{},
	)
	return dat.(*d3c.Hero), header, err
}
func (c *Client) D3BarbarianSkill(ctx context.Context, skillSlug string) (*d3c.Skill, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/d3/data/hero/barbarian/skill/%s", skillSlug),
		&d3c.Skill{},
	)
	return dat.(*d3c.Skill), header, err
}
func (c *Client) D3CrusaderSkill(ctx context.Context, skillSlug string) (*d3c.Skill, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/d3/data/hero/crusader/skill/%s", skillSlug),
		&d3c.Skill{},
	)
	return dat.(*d3c.Skill), header, err
}
func (c *Client) D3DemonHunterSkill(ctx context.Context, skillSlug string) (*d3c.Skill, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/d3/data/hero/demon-hunter/skill/%s", skillSlug),
		&d3c.Skill{},
	)
	return dat.(*d3c.Skill), header, err
}
func (c *Client) D3MonkSkill(ctx context.Context, skillSlug string) (*d3c.Skill, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/d3/data/hero/monk/skill/%s", skillSlug),
		&d3c.Skill{},
	)
	return dat.(*d3c.Skill), header, err
}
func (c *Client) D3NecromancerSkill(ctx context.Context, skillSlug string) (*d3c.Skill, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/d3/data/hero/necromancer/skill/%s", skillSlug),
		&d3c.Skill{},
	)
	return dat.(*d3c.Skill), header, err
}
func (c *Client) D3WizardSkill(ctx context.Context, skillSlug string) (*d3c.Skill, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/d3/data/hero/wizard/skill/%s", skillSlug),
		&d3c.Skill{},
	)
	return dat.(*d3c.Skill), header, err
}
func (c *Client) D3WitchDoctorSkill(ctx context.Context, skillSlug string) (*d3c.Skill, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/d3/data/hero/witch-doctor/skill/%s", skillSlug),
		&d3c.Skill{},
	)
	return dat.(*d3c.Skill), header, err
}
func (c *Client) D3ItemTypeIndex(ctx context.Context) (*d3c.ItemTypeIndex, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		"/d3/data/item-type",
		&d3c.ItemTypeIndex{},
	)
	return dat.(*d3c.ItemTypeIndex), header, err
}
func (c *Client) D3ItemType(ctx context.Context, itemTypeSlug string) (*d3c.ItemType, *Header, error) {
	dat, header, err := c.getStructDataNoNamespace(ctx,
		fmt.Sprintf("/d3/data/item-type/%s", itemTypeSlug),
		&d3c.ItemType{},
	)
	return dat.(*d3c.ItemType), header, err
}