Documentation ¶
Index ¶
- Variables
- type Culture_CultureType
- type Culture_FlocculationType
- type Culture_FormType
- type Equipment
- type Fermentable
- type Fermentable_FermentablesType
- type Fermentables
- type Hop
- type Hop_HopsFormType
- type Hop_HopsType
- type Hop_HopsUseType
- type Hops
- type MISCS
- type Mash
- type MashStep
- type MashStep_MashStepType
- type MashSteps
- type Measureable
- type Misc
- type Misc_MiseType
- type Misc_MiseUseType
- type RECIPES
- type Recipe
- type Recipe_RecipeType
- type Style
- type Style_StyleType
- type Styles
- type Water
- type Waters
- type Yeast
- type Yeasts
Constants ¶
This section is empty.
Variables ¶
var Culture_CultureType_name = map[int32]string{
0: "CULTURE_NONE",
1: "Ale",
2: "Lager",
3: "Wheat",
4: "Wine",
5: "Champagne",
6: "Bacteria",
7: "Brett",
8: "Kveik",
9: "Lacto",
10: "Malolactic",
11: "Mixed Culture",
12: "Other",
13: "Pedio",
14: "Spontaneous",
}
var Culture_CultureType_value = map[string]int32{
"CULTURE_NONE": 0,
"Ale": 1,
"Lager": 2,
"Wheat": 3,
"Wine": 4,
"Champagne": 5,
"Bacteria": 6,
"Brett": 7,
"Kveik": 8,
"Lacto": 9,
"Malolactic": 10,
"Mixed Culture": 11,
"Other": 12,
"Pedio": 13,
"Spontaneous": 14,
}
var Culture_FlocculationType_name = map[int32]string{
0: "FLOCCULATION_NONE",
1: "Low",
2: "Medium",
3: "High",
4: "Very High",
}
var Culture_FlocculationType_value = map[string]int32{
"FLOCCULATION_NONE": 0,
"Low": 1,
"Medium": 2,
"High": 3,
"Very High": 4,
}
var Culture_FormType_name = map[int32]string{
0: "FORM_NONE",
1: "Liquid",
2: "Dry",
3: "Slant",
4: "Culture",
5: "Dregs",
}
var Culture_FormType_value = map[string]int32{
"FORM_NONE": 0,
"Liquid": 1,
"Dry": 2,
"Slant": 3,
"Culture": 4,
"Dregs": 5,
}
var Fermentable_FermentablesType_name = map[int32]string{
0: "FERMENTABLES_NONE",
1: "Grain",
2: "Sugar",
3: "Extract",
4: "Dry Extract",
5: "Adjunct",
}
var Fermentable_FermentablesType_value = map[string]int32{
"FERMENTABLES_NONE": 0,
"Grain": 1,
"Sugar": 2,
"Extract": 3,
"Dry Extract": 4,
"Adjunct": 5,
}
var Hop_HopsFormType_name = map[int32]string{
0: "HOPS_FORM_NONE",
1: "Pellet",
2: "Plug",
3: "Leaf",
}
var Hop_HopsFormType_value = map[string]int32{
"HOPS_FORM_NONE": 0,
"Pellet": 1,
"Plug": 2,
"Leaf": 3,
}
var Hop_HopsType_name = map[int32]string{
0: "HOPS_NONE",
1: "Bittering",
2: "Aroma",
3: "Both",
}
var Hop_HopsType_value = map[string]int32{
"HOPS_NONE": 0,
"Bittering": 1,
"Aroma": 2,
"Both": 3,
}
var Hop_HopsUseType_name = map[int32]string{
0: "HOPS_USE_NONE",
1: "Boil",
2: "Dry Hop",
3: "Mash",
4: "First Wort",
5: "Aroma",
}
var Hop_HopsUseType_value = map[string]int32{
"HOPS_USE_NONE": 0,
"Boil": 1,
"Dry Hop": 2,
"Mash": 3,
"First Wort": 4,
"Aroma": 5,
}
var MashStep_MashStepType_name = map[int32]string{
0: "FERMENTABLES_NONE",
1: "Infusion",
2: "Temperature",
3: "Decoction",
}
var MashStep_MashStepType_value = map[string]int32{
"FERMENTABLES_NONE": 0,
"Infusion": 1,
"Temperature": 2,
"Decoction": 3,
}
var Misc_MiseType_name = map[int32]string{
0: "MISE_NONE",
1: "Spice",
2: "Fining",
3: "Water Agent",
4: "Herb",
5: "Flavor",
6: "Other",
}
var Misc_MiseType_value = map[string]int32{
"MISE_NONE": 0,
"Spice": 1,
"Fining": 2,
"Water Agent": 3,
"Herb": 4,
"Flavor": 5,
"Other": 6,
}
var Misc_MiseUseType_name = map[int32]string{
0: "USE_NONE",
1: "Boil",
2: "Mash",
3: "Primary",
4: "Secondary",
5: "Bottling",
}
var Misc_MiseUseType_value = map[string]int32{
"USE_NONE": 0,
"Boil": 1,
"Mash": 2,
"Primary": 3,
"Secondary": 4,
"Bottling": 5,
}
var Recipe_RecipeType_name = map[int32]string{
0: "RECIPE_NONE",
1: "Extract",
2: "Partial Mash",
3: "All Grain",
4: "Cider",
5: "Kombucha",
6: "Soda",
7: "Other",
8: "Mead",
9: "Wine",
}
var Recipe_RecipeType_value = map[string]int32{
"RECIPE_NONE": 0,
"Extract": 1,
"Partial Mash": 2,
"All Grain": 3,
"Cider": 4,
"Kombucha": 5,
"Soda": 6,
"Other": 7,
"Mead": 8,
"Wine": 9,
}
var Style_StyleType_name = map[int32]string{
0: "STYLE_NONE",
1: "Lager",
2: "Ale",
3: "Mead",
4: "Wheat",
5: "Mixed",
6: "Cider",
}
var Style_StyleType_value = map[string]int32{
"STYLE_NONE": 0,
"Lager": 1,
"Ale": 2,
"Mead": 3,
"Wheat": 4,
"Mixed": 5,
"Cider": 6,
}
var WithUnits bool = false
Functions ¶
This section is empty.
Types ¶
type Culture_CultureType ¶
type Culture_CultureType int32
const ( // None CULTURE_CULTURE_NONE Culture_CultureType = 0 // Ale CULTURE_ALE Culture_CultureType = 1 // Lager CULTURE_LAGER Culture_CultureType = 2 // Wheat CULTURE_WHEAT Culture_CultureType = 3 // Wine CULTURE_WINE Culture_CultureType = 4 // Champagne CULTURE_CHAMPAGNE Culture_CultureType = 5 // Bacteria CULTURE_BACTERIA Culture_CultureType = 6 // Brett CULTURE_BRETT Culture_CultureType = 7 // Kveik CULTURE_KVEIK Culture_CultureType = 8 // Lacto CULTURE_LACTO Culture_CultureType = 9 // Malolactic CULTURE_MALOLACTIC Culture_CultureType = 10 // Mixed-Culture CULTURE_MIXED_CULTURE Culture_CultureType = 11 // Other CULTURE_OTHER Culture_CultureType = 12 // Pedio CULTURE_PEDIO Culture_CultureType = 13 // Spontaneous CULTURE_SPONTANEOUS Culture_CultureType = 14 )
func (Culture_CultureType) MarshalXML ¶
func (a Culture_CultureType) MarshalXML(e *xml.Encoder, start xml.StartElement) error
func (*Culture_CultureType) UnmarshalXML ¶
func (a *Culture_CultureType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
type Culture_FlocculationType ¶
type Culture_FlocculationType int32
const ( // None CULTURE_FLOCCULATION_NONE Culture_FlocculationType = 0 // Low CULTURE_LOW Culture_FlocculationType = 1 // Medium CULTURE_MEDIUM Culture_FlocculationType = 2 // High CULTURE_HIGH Culture_FlocculationType = 3 // Very High CULTURE_VERY_HIGH Culture_FlocculationType = 4 )
type Culture_FormType ¶
type Culture_FormType int32
const ( // None CULTURE_FORM_NONE Culture_FormType = 0 // Liquid CULTURE_LIQUID Culture_FormType = 1 // Dry CULTURE_DRY Culture_FormType = 2 // Slant CULTURE_SLANT Culture_FormType = 3 // Culture CULTURE_CULTURE Culture_FormType = 4 // Dregs CULTURE_DREGS Culture_FormType = 5 )
func (Culture_FormType) MarshalXML ¶
func (a Culture_FormType) MarshalXML(e *xml.Encoder, start xml.StartElement) error
func (*Culture_FormType) UnmarshalXML ¶
func (a *Culture_FormType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
type Equipment ¶
type Equipment struct { // Name of the equipment profile – usually a text description of the brewing setup. Name string `xml:"NAME" json:"name,omitempty"` // Version of the equipment record. Should always be “1” for this version of the XML standard. Version int32 `xml:"VERSION" json:"version,omitempty"` // The pre-boil volume used in this particular instance for this equipment setup. // Note that this may be a calculated value depending on the CALC_BOIL_VOLUME parameter. BoilSize float64 `xml:"BOIL_SIZE" json:"boil_size,omitempty"` // The target volume of the batch at the start of fermentation. BatchSize float64 `xml:"BATCH_SIZE" json:"batch_size,omitempty"` // Volume of the mash tun in liters. This parameter can be used to calculate if a particular mash and grain // profile will fit in the mash tun. It may also be used for thermal calculations // in the case of a partially full mash tun. TunVolume *float64 `xml:"TUN_VOLUME,omitempty" json:"tun_volume,omitempty"` // Weight of the mash tun in kilograms. // Used primarily to calculate the thermal parameters of the mash tun – in conjunction with the volume and specific // heat. TunWeight *float64 `xml:"TUN_WEIGHT,omitempty" json:"tun_weight,omitempty"` // The specific heat of the mash tun which is usually a function of the material it is made of. // Typical ranges are 0.1-0.25 for metal and 0.2-0.5 for plastic materials. TunSpecificHeat *float64 `xml:"TUN_SPECIFIC_HEAT,omitempty" json:"tun_specific_heat,omitempty"` // The amount of top up water normally added just prior to starting fermentation. Usually used for extract brewing. TopUpWater *float64 `xml:"TOP_UP_WATER,omitempty" json:"top_up_water,omitempty"` // The amount of wort normally lost during transition from the boiler to the fermentation vessel. // Includes both unusable wort due to trub and wort lost to the chiller and transfer systems. TrubChillerLoss *float64 `xml:"TRUB_CHILLER_LOSS,omitempty" json:"trub_chiller_loss,omitempty"` // The percentage of wort lost to evaporation per hour of the boil. EvapRate *float64 `xml:"EVAP_RATE,omitempty" json:"evap_rate,omitempty"` // The normal amount of time one boils for this equipment setup. This can be used with the evaporation rate to // calculate the evaporation loss. BoilTime *float64 `xml:"BOIL_TIME,omitempty" json:"boil_time,omitempty"` // Flag denoting that the program should calculate the boil size. Flag may be TRUE or FALSE. // If TRUE, then BOIL_SIZE = (BATCH_SIZE – TOP_UP_WATER – TRUB_CHILLER_LOSS) * (1+BOIL_TIME * EVAP_RATE ) // If set then the boil size should match this value. CalcBoilVolume *bool `xml:"CALC_BOIL_VOLUME,omitempty" json:"calc_boil_volume,omitempty"` // Amount lost to the lauter tun and equipment associated with the lautering process. LauterDeadspace *float64 `xml:"LAUTER_DEADSPACE,omitempty" json:"lauter_deadspace,omitempty"` // Amount normally added to the boil kettle before the boil. TopUpKettle *float64 `xml:"TOP_UP_KETTLE,omitempty" json:"top_up_kettle,omitempty"` // Large batch hop utilization. This value should be 100% for batches less than 20 gallons, // but may be higher (200% or more) for very large batch equipment. HopUtilization *float64 `xml:"HOP_UTILIZATION,omitempty" json:"hop_utilization,omitempty"` // Notes associated with the equipment. May be a multiline entry. Notes *string `xml:"NOTES,omitempty" json:"notes,omitempty"` // The pre-boil volume normally used for a batch of this size shown in display volume units such as “5.5 gal” DisplayBoilSize *string `xml:"DISPLAY_BOIL_SIZE,omitempty" json:display_boil_size,omitempty"` // The target volume of the batch at the start of fermentation in display volume units such as “5.0 gal” DisplayBatchSize *string `xml:"DISPLAY_BATCH_SIZE,omitempty" json:"DISPLAY_BATCH_SIZE,omitempty"` // Volume of the mash tun in display units such as “10.0 gal” or “20.0 l” DisplayTunVolume *string `xml:"DISPLAY_TUN_VOLUME,omitempty" json:"display_tun_volume,omitempty"` // Weight of the mash tun in display units such as “3.0 kg” or “6.0 lb” DisplayTunWeight *string `xml:"DISPLAY_TUN_WEIGHT,omitempty" json:"display_tun_weight,omitempty"` // The amount of top up water normally added just prior to starting fermentation in display volume such as “1.0 gal” DisplayTopUpWater *string `xml:"DISPLAY_TOP_UP_WATER,omitempty" json:"display_top_up_water,omitempty"` // The amount of wort normally lost during transition from the boiler to the fermentation vessel. // Includes both unusable wort due to trub and wort lost to the chiller and transfer systems. // Expressed in user units - Ex: “1.5 qt” DisplayTrubChillerLoss *string `xml:"DISPLAY_TRUB_CHILLER_LOSS,omitempty" json:"display_trub_chiller_loss,omitempty"` // Amount lost to the lauter tun and equipment associated with the lautering process. Ex: “2.0 gal” or “1.0 l” DisplayLauterDeadspace *string `xml:"DISPLAY_LAUTER_DEADSPACE,omitempty" json:"display_lauter_deadspace,omitempty"` // Amount normally added to the boil kettle before the boil. Ex: “1.0 gal” DisplayTopUpKettle *string `xml:"DISPLAY_TOP_UP_KETTLE,omitempty" json:"display_top_up_kettle,omitempty"` }
Though an equipment record is optional, when used it in a recipe or on its own it provides details needed to calculate total water usage as well as water needed for each step. It also contains information about the thermal parameters of the mash tun and large batch hop utilization factors.
func (Equipment) MarshalXML ¶
func (*Equipment) UnmarshalXML ¶
type Fermentable ¶
type Fermentable struct { // Name of the fermentable. Name string `xml:"NAME" json:"name,omitempty"` // Should be set to 1 for this version of the XML standard. May be a higher number for later versions but all later // versions shall be backward compatible. Version int32 `xml:"VERSION" json:"version,omitempty"` // May be "Grain", "Sugar", "Extract", "Dry Extract" or "Adjunct". Extract refers to liquid extract. Type Fermentable_FermentablesType `xml:"TYPE" json:"type,omitempty"` // Weight of the fermentable, extract or sugar in Kilograms. Amount float64 `xml:"AMOUNT" json:"amount,omitempty"` // Percent dry yield (fine grain) for the grain, or the raw yield by weight if this is an extract adjunct or sugar. Yield float64 `xml:"YIELD" json:"yield,omitempty"` // The color of the item in Lovibond Units (SRM for liquid extracts). Color float64 `xml:"COLOR" json:"color,omitempty"` // May be TRUE if this item is normally added after the boil. The default value is FALSE since most grains are // added during the mash or boil. AddAfterBoil *bool `xml:"ADD_AFTER_BOIL,omitempty" json:"add_after_boil,omitempty"` // Country or place of origin Origin *string `xml:"ORIGIN,omitempty" json:"origin,omitempty"` // Supplier of the grain/extract/sugar Supplier *string `xml:"SUPPLIER,omitempty" json:"supplier,omitempty"` // Textual noted describing this ingredient and its use. May be multiline. Notes *string `xml:"NOTES,omitempty" json:"notes,omitempty"` // Percent difference between the coarse grain yield and fine grain yield. Only appropriate for a "Grain" or // "Adjunct" type, otherwise this value is ignored. CoarseFineDiff *float64 `xml:"COARSE_FINE_DIFF,omitempty" json:"coarse_fine_diff,omitempty"` // Percent moisture in the grain. Only appropriate for a "Grain" or "Adjunct" type, otherwise this value is ignored. Moisture *float64 `xml:"MOISTURE,omitempty" json:"moisture,omitempty"` // The diastatic power of the grain as measured in "Lintner" units. Only appropriate for a "Grain" or "Adjunct" // type, otherwise this value is ignored. DiastaticPower *float64 `xml:"DIASTATIC_POWER,omitempty" json:"diastatic_power,omitempty"` // The percent protein in the grain. Only appropriate for a "Grain" or "Adjunct" type, otherwise this value is // ignored. Protein *float64 `xml:"PROTEIN,omitempty" json:"protein,omitempty"` // The recommended maximum percentage (by weight) this ingredient should represent in a batch of beer. MaxInBatch *float64 `xml:"MAX_IN_BATCH,omitempty" json:"max_in_batch,omitempty"` // TRUE if it is recommended the grain be mashed, FALSE if it can be steeped. A value of TRUE is only appropriate // for a "Grain" or "Adjunct" types. The default value is FALSE. Note that this does NOT indicate whether // the grain is mashed or not – it is only a recommendation used in recipe formulation. RecommendMash *bool `xml:"RECOMMEND_MASH,omitempty" json:"recommend_mash,omitempty"` // For hopped extracts only - an estimate of the number of IBUs per pound of extract in a gallon of water. // To convert to IBUs we multiply this number by the "AMOUNT" field (in pounds) and divide by the number of // gallons in the batch. Based on a sixty minute boil. // Only suitable for use with an "Extract" type, otherwise this value is ignored. IIBGalPerlb *float64 `xml:"IBU_GAL_PER_LB,omitempty" json:"ibu_gal_per_lb,omitempty"` // The amount of fermentables in this record along with the units formatted for easy display in the current // user defined units. // For example “1.5 lbs” or “2.1 kg”. DisplayAmount *string `xml:"DISPLAY_AMOUNT,omitempty" json:"display_amount,omitempty"` // The yield of the fermentable converted to specific gravity units for display. // For example “1.036” or “1.040” might be valid potentials. Potential *string `xml:"POTENTIAL,omitempty" json:"potential,omitempty"` // Amount in inventory for this item along with the units – for example “10.0 lb” Inventory *string `xml:"INVENTORY,omitempty" json:"inventory,omitempty"` // Color in user defined color units along with the unit identified – for example “200L” or “40 ebc” DisplayColor *string `xml:"DISPLAY_COLOR,omitempty" json:"display_color,omitempty"` }
The term "fermentable" encompasses all fermentable items that contribute substantially to the beer including extracts, grains, sugars, honey, fruits.
func (Fermentable) MarshalXML ¶
func (a Fermentable) MarshalXML(e *xml.Encoder, start xml.StartElement) error
func (*Fermentable) UnmarshalXML ¶
func (a *Fermentable) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
type Fermentable_FermentablesType ¶
type Fermentable_FermentablesType int32
const ( // None FERMENTABLE_FERMENTABLES_NONE Fermentable_FermentablesType = 0 // Grain FERMENTABLE_GRAIN Fermentable_FermentablesType = 1 // Sugar FERMENTABLE_SUGAR Fermentable_FermentablesType = 2 // Extract FERMENTABLE_EXTRACT Fermentable_FermentablesType = 3 // Dry Extract FERMENTABLE_DRY_EXTRACT Fermentable_FermentablesType = 4 // Adjunct FERMENTABLE_ADJUNCT Fermentable_FermentablesType = 5 )
func (Fermentable_FermentablesType) MarshalXML ¶
func (a Fermentable_FermentablesType) MarshalXML(e *xml.Encoder, start xml.StartElement) error
func (*Fermentable_FermentablesType) UnmarshalXML ¶
func (a *Fermentable_FermentablesType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
type Fermentables ¶
type Fermentables struct {
Fermentable []Fermentable `xml:"FERMENTABLE" json:"fermentable,omitempty"`
}
Encloses a set of one or more Fermentable records.
type Hop ¶
type Hop struct { // Name of the hops Name string `xml:"NAME" json:"name,omitempty"` // Should be set to 1 for this version of the XML standard. May be a higher number for later versions but all // later versions shall be backward compatible. Version int32 `xml:"VERSION" json:"version,omitempty"` // Percent alpha of hops - for example "5.5" represents 5.5% alpha Alpha float64 `xml:"ALPHA" json:"alpha,omitempty"` // Weight in Kilograms of the hops used in the recipe. Amount float64 `xml:"AMOUNT" json:"amount,omitempty"` // May be "Boil", "Dry Hop", "Mash", "First Wort" or "Aroma". Note that "Aroma" and "Dry Hop" do not contribute // to the bitterness of the beer while the others do. Aroma hops are added after the boil and do not contribute // substantially to beer bitterness. Use Hop_HopsUseType `xml:"USE" json:"use,omitempty"` // The time as measured in minutes. Meaning is dependent on the “USE” field. // For “Boil” this is the boil time. // For “Mash” this is the mash time. // For “First Wort” this is the boil time. // For “Aroma” this is the steep time. // For “Dry Hop” this is the amount of time to dry hop. Time float64 `xml:"TIME" json:"time,omitempty"` // Textual notes about the hops, usage, substitutes. May be a multiline entry. Notes *string `xml:"NOTES,omitempty" json:"notes,omitempty"` // May be "Bittering", "Aroma" or "Both" Type Hop_HopsType `xml:"TYPE" json:"type,omitempty"` // May be "Pellet", "Plug" or "Leaf" Form Hop_HopsFormType `xml:"FORM" json:"form,omitempty"` // Hop beta percentage - for example "4.4" denotes 4.4 % beta Beta *float64 `xml:"BETA,omitempty" json:"beta,omitempty"` // Hop Stability Index - defined as the percentage of hop alpha lost in 6 months of storage HSI *float64 `xml:"HSI,omitempty" json:"hsi,omitempty"` // Place of origin for the hops Origin *string `xml:"ORIGIN,omitempty" json:"origin,omitempty"` // Substitutes that can be used for this hops Substitutes *string `xml:"SUBSTITUTES,omitempty" json:"substitutes,omitempty"` // Humulene level in percent. Humulene *float64 `xml:"HUMULENE,omitempty" json:"humulene,omitempty"` // Caryophyllene level in percent. Caryophyllene *float64 `xml:"CARYOPHYLLENE,omitempty" json:"caryophyllene,omitempty"` // Cohumulone level in percent Cohumulone *float64 `xml:"COHUMULONE,omitempty" json:"cohumulone,omitempty"` // Myrcene level in percent Myrcene *float64 `xml:"MYRCENE,omitempty" json:"myrcene,omitempty"` // The amount of hops in this record along with the units formatted for easy display in the current user defined units. For example “100 g” or “1.5 oz”. DisplayAmount *string `xml:"DISPLAY_AMOUNT,omitempty" json:"display_amount,omitempty"` // Amount in inventory for this item along with the units – for example “10.0 oz” Inventory *string `xml:"INVENTORY,omitempty" json:"inventory,omitempty"` // Time displayed in minutes for all uses except for the dry hop which is in days. For example “60 min”, “3 days”. DisplayTime *string `xml:"DISPLAY_TIME,omitempty" json:"display_time,omitempty"` }
The “HOP” identifier is used to define all varieties of hops.
func (Hop) MarshalXML ¶
func (*Hop) UnmarshalXML ¶
type Hop_HopsFormType ¶
type Hop_HopsFormType int32
const ( // None Hop_HOPS_FORM_NONE Hop_HopsFormType = 0 // Pellet Hop_PELLET Hop_HopsFormType = 1 // Plug Hop_PLUG Hop_HopsFormType = 2 // Leaf Hop_LEAF Hop_HopsFormType = 3 )
func (Hop_HopsFormType) MarshalXML ¶
func (a Hop_HopsFormType) MarshalXML(e *xml.Encoder, start xml.StartElement) error
func (*Hop_HopsFormType) UnmarshalXML ¶
func (a *Hop_HopsFormType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
type Hop_HopsType ¶
type Hop_HopsType int32
const ( // None HOP_HOPS_NONE Hop_HopsType = 0 // Bittering HOP_BITTERING Hop_HopsType = 1 // Aroma HOP_AROMA Hop_HopsType = 2 // Both HOP_BOTH Hop_HopsType = 3 )
func (Hop_HopsType) MarshalXML ¶
func (a Hop_HopsType) MarshalXML(e *xml.Encoder, start xml.StartElement) error
func (*Hop_HopsType) UnmarshalXML ¶
func (a *Hop_HopsType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
type Hop_HopsUseType ¶
type Hop_HopsUseType int32
const ( // None HOP_HOPS_USE_NONE Hop_HopsUseType = 0 // Boil HOP_BOIL Hop_HopsUseType = 1 // Dry Hop HOP_DRY_HOP Hop_HopsUseType = 2 // Mash HOP_MASH Hop_HopsUseType = 3 // First Wort HOP_FIRST_WORT Hop_HopsUseType = 4 // Aroma HOP_AROMA_OTHER Hop_HopsUseType = 5 )
func (Hop_HopsUseType) MarshalXML ¶
func (a Hop_HopsUseType) MarshalXML(e *xml.Encoder, start xml.StartElement) error
func (*Hop_HopsUseType) UnmarshalXML ¶
func (a *Hop_HopsUseType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
type Hops ¶
type Hops struct {
Hop []Hop `xml:"HOP" json:"hop,omitempty"`
}
Encloses a set of one or more Hop records.
type MISCS ¶
type MISCS struct {
MISC []Misc `xml:"MISC" json:"mise,omitempty"`
}
Encloses a set of one or more Misc records
type Mash ¶
type Mash struct { // Name of the mash profile. Name string `xml:"NAME" json:"name,omitempty"` // Version of the mash record. Should always be “1” for this version of the XML standard. Version int32 `xml:"VERSION" json:"version,omitempty"` // The temperature of the grain before adding it to the mash in degrees Celsius. GrainTemp float64 `xml:"GRAIN_TEMP" json:"grain_temp,omitempty"` // Record set that starts the list of <MASH_STEP> records. All MASH_STEP records should appear between the // <MASH_STEPS> … </MASH_STEPS> pair. MashSteps *MashSteps `xml:"MASH_STEPS" json:"mash_steps,omitempty"` // Notes associated with this profile – may be multiline. Notes *string `xml:"NOTES,omitempty" json:"notes,omitempty"` // Grain tun temperature – may be used to adjust the infusion temperature for equipment if the program supports it. // Measured in degrees C. TunTemp *float64 `xml:"TUN_TEMP,omitempty" json:"tun_temp,omitempty"` // Temperature of the sparge water used in degrees Celsius. SpargeTemp *float64 `xml:"SPARGE_TEMP,omitempty" json:"sparge_temp,omitempty"` // PH of the sparge. PH *float64 `xml:"PH,omitempty" json:"ph,omitempty"` // Weight of the mash tun in kilograms TunWeight *float64 `xml:"TUN_WEIGHT,omitempty" json:"tun_weight,omitempty"` // Specific heat of the tun material in calories per gram-degree C. TunSpecificHeat *float64 `xml:"TUN_SPECIFIC_HEAT,omitempty" json:"tun_specific_heat,omitempty"` // If TRUE, mash infusion and decoction calculations should take into account the temperature effects of the // equipment (tun specific heat and tun weight). If FALSE, the tun is assumed to be pre-heated. Default is FALSE. EquipAdjust *bool `xml:"EQUIP_ADJUST,omitempty" json:"equip_adjust,omitempty"` // Grain temperature in user display units with the units. For example: “72 F”. DisplayGrainTemp *string `xml:"DISPLAY_GRAIN_TEMP,omitempty" json:"display_grain_temp,omitempty"` // Tun temperature in user display units. For example “68 F” DisplayTunTemp *string `xml:"DISPLAY_TUN_TEMP,omitempty" json:"display_tun_temp,omitempty"` // Sparge temperature in user defined units. For example “178 F” DisplaySpargeTemp *string `xml:"DISPLAY_SPARGE_TEMP,omitempty" json:"display_sparge_temp,omitempty"` // Tun weight in user defined units – for example “10 lb” DisplayTunWeight *string `xml:"DISPLAY_TUN_WEIGHT,omitempty" json:"display_tun_weight,omitempty"` }
A mash profile is a record used either within a recipe or outside the recipe to precisely specify the mash method used. The record consists of some informational items followed by a <MASH_STEPS> record that contains the actual mash steps.
func (Mash) MarshalXML ¶
func (*Mash) UnmarshalXML ¶
type MashStep ¶
type MashStep struct { // Name of the mash step – usually descriptive text such as “Dough In” or “Conversion” Name string `xml:"NAME" json:"name,omitempty"` // Version of the mash step record. Should always be “1” for this version of the XML standard. Version int32 `xml:"VERSION" json:"version,omitempty"` // May be “Infusion”, “Temperature” or “Decoction” depending on the type of step. // Infusion denotes adding hot water, Temperature denotes heating with an outside heat source, // and decoction denotes drawing off some mash for boiling. Type MashStep_MashStepType `xml:"TYPE" json:"type,omitempty"` // The volume of water in liters to infuse in this step. Required only for infusion steps, though one may also // add water for temperature mash steps. One should not have an infusion amount for decoction steps. InfuseAmount *float64 `xml:"INFUSE_AMOUNT,omitempty" json:"infuse_amount,omitempty"` // The target temperature for this step in degrees Celsius. StepTemp float64 `xml:"STEP_TEMP" json:"step_temp,omitempty"` // The number of minutes to spend at this step – i.e. the amount of time we are to hold this particular step // temperature. StepTime int64 `xml:"STEP_TIME" json:"step_time,omitempty"` // Time in minutes to achieve the desired step temperature – useful particularly for temperature mashes where // it may take some time to achieve the step temperature. RampTime *int64 `xml:"RAMP_TIME,omitempty" json:"ramp_time,omitempty"` // the temperature you can expect the mash to fall to after a long mash step. Measured in degrees Celsius. EndTemp *float64 `xml:"END_TEMP,omitempty" json:"end_temp,omitempty"` // Textual description of this step such as “Infuse 4.5 gal of water at 170 F” – may be either generated by the // program or input by the user. Description *string `xml:"DESCRIPTION,omitempty" json:"description,omitempty"` // The total ratio of water to grain for this step AFTER the infusion along with the units, usually // expressed in qt/lb or l/kg. Note this value must be consistent with the required infusion amount and amounts // added in earlier steps and is only relevant as part of a <MASH> profile. For example “1.5 qt/lb” or “3.0 l/kg” WaterGrainRatio *string `xml:"WATER_GRAIN_RATIO,omitempty" json:"water_grain_ratio,omitempty"` // Calculated volume of mash to decoct. Only applicable for a decoction step. // Includes the units as in “7.5 l” or “2.3 gal” DecoctionAmt *string `xml:"DECOCTION_AMT,omitempty" json:"decoction_amt,omitempty"` // The calculated infusion temperature based on the current step, grain, and other settings. // Applicable only for an infusion step. Includes the units as in “154 F” or “68 C” InfuseTemp *string `xml:"INFUSE_TEMP,omitempty" json:"infuse_temp,omitempty"` // Step temperature in user defined temperature units. For example “154F” or “68 C” DisplayStepTemp *string `xml:"DISPLAY_STEP_TEMP,omitempty" json:"display_step_temp,omitempty"` // Infusion amount along with the volume units as in “20 l” or “13 qt” DisplayInfuseAmt *string `xml:"DISPLAY_INFUSE_AMT,omitempty" json:"display_infuse_amt,omitempty"` }
A mash step is an internal record used within a mash profile to denote a separate step in a multi-step mash. A mash step is not intended for use outside of a mash profile.
func (MashStep) MarshalXML ¶
func (*MashStep) UnmarshalXML ¶
type MashStep_MashStepType ¶
type MashStep_MashStepType int32
const ( // None MASH_STEP_FERMENTABLES_NONE MashStep_MashStepType = 0 // Infusion MASH_STEP_INFUSION MashStep_MashStepType = 1 // Temperature MASH_STEP_TEMPERATURE MashStep_MashStepType = 2 // Decoction MASH_STEP_DECOCTION MashStep_MashStepType = 3 )
func (MashStep_MashStepType) MarshalXML ¶
func (a MashStep_MashStepType) MarshalXML(e *xml.Encoder, start xml.StartElement) error
func (*MashStep_MashStepType) UnmarshalXML ¶
func (a *MashStep_MashStepType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
type MashSteps ¶
type MashSteps struct {
Mashstep []MashStep `xml:"MASH_STEP" json:"mash_step,omitempty"`
}
Used within a MASH profile to record the steps
type Measureable ¶
type Measureable struct { Value float64 `xml:"VALUE,omitempty" json:"value,omitempty"` Unit string `xml:"UNIT,omitempty" json:"unit,omitempty"` }
func NewMeasureable ¶
func NewMeasureable(value *string) *Measureable
func (Measureable) MarshalXML ¶
func (s Measureable) MarshalXML(e *xml.Encoder, start xml.StartElement) error
func (Measureable) String ¶
func (s Measureable) String() string
func (*Measureable) UnmarshalXML ¶
func (s *Measureable) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
type Misc ¶
type Misc struct { // Name of the misc item. Name string `xml:"NAME" json:"name,omitempty"` // Version number of this element. Should be “1” for this version. Version int32 `xml:"VERSION" json:"version,omitempty"` // May be “Spice”, “Fining”, “Water Agent”, “Herb”, “Flavor” or “Other” Type Misc_MiseType `xml:"TYPE" json:"type,omitempty"` // May be “Boil”, “Mash”, “Primary”, “Secondary”, “Bottling” Use Misc_MiseUseType `xml:"USE" json:"use,omitempty"` // Amount of time the misc was boiled, steeped, mashed, etc in minutes. Time float64 `xml:"TIME" json:"time,omitempty"` // Amount of item used. The default measurements are by weight, but this may be the measurement in volume units // if AMOUNT_IS_WEIGHT is set to TRUE for this record. // If a liquid it is in liters, // if a solid the weight is measured in kilograms. Amount float64 `xml:"AMOUNT" json:"amount,omitempty"` // TRUE if the amount measurement is a weight measurement and FALSE if the amount is a volume measurement. // Default value (if not present) is assumed to be FALSE. AmountIsWeight *bool `xml:"AMOUNT_IS_WEIGHT" json:"amount_is_weight,omitempty"` // Short description of what the ingredient is used for in text UseFor *string `xml:"USE_FOR" json:"use_for,omitempty"` // Detailed notes on the item including usage. May be multiline. Notes *string `xml:"NOTES" json:"notes,omitempty"` // The amount of the item in this record along with the units formatted for easy display in the current user // defined units. For example “1.5 lbs” or “2.1 kg”. DisplayAmount *string `xml:"DISPLAY_AMOUNT" json:"display_amount,omitempty"` // Amount in inventory for this item along with the units – for example “10.0 lb” Inventory *string `xml:"INVENTORY" json:"inventory,omitempty"` // Time in appropriate units along with the units as in “10 min” or “3 days”. DisplayTime *string `xml:"DISPLAY_TIME" json:"display_time,omitempty"` }
The term "misc" encompasses all non-fermentable miscellaneous ingredients that are not hops or yeast and do not significantly change the gravity of the beer. For example: spices, clarifying agents, water treatments, etc…
func (Misc) MarshalXML ¶
func (*Misc) UnmarshalXML ¶
type Misc_MiseType ¶
type Misc_MiseType int32
const ( // None MISC_MISE_NONE Misc_MiseType = 0 // Spice MISC_SPICE Misc_MiseType = 1 // Fining MISC_FINING Misc_MiseType = 2 // Water Agent MISC_WATER_AGENT Misc_MiseType = 3 // Herb MISC_HERB Misc_MiseType = 4 // Flavor MISC_FLAVOR Misc_MiseType = 5 // Other MISC_OTHER Misc_MiseType = 6 )
func (Misc_MiseType) MarshalXML ¶
func (a Misc_MiseType) MarshalXML(e *xml.Encoder, start xml.StartElement) error
func (*Misc_MiseType) UnmarshalXML ¶
func (a *Misc_MiseType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
type Misc_MiseUseType ¶
type Misc_MiseUseType int32
const ( // None MISC_USE_NONE Misc_MiseUseType = 0 // Boil MISC_BOIL Misc_MiseUseType = 1 // Mash MISC_MASH Misc_MiseUseType = 2 // Primary MISC_PRIMARY Misc_MiseUseType = 3 // Secondary MISC_SECONDARY Misc_MiseUseType = 4 // Bottling MISC_BOTTLING Misc_MiseUseType = 5 )
func (Misc_MiseUseType) MarshalXML ¶
func (a Misc_MiseUseType) MarshalXML(e *xml.Encoder, start xml.StartElement) error
func (*Misc_MiseUseType) UnmarshalXML ¶
func (a *Misc_MiseUseType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
type RECIPES ¶
type RECIPES struct {
Recipe []Recipe `xml:"RECIPE" json:"recipes,omitempty"`
}
Encloses one or more recipe records.
type Recipe ¶
type Recipe struct { // Name of the recipe. Name string `xml:"NAME" json:"name,omitempty"` // Version of the recipe record. Should always be “1” for this version of the XML standard. Version int32 `xml:"VERSION" json:"version,omitempty"` // May be one of “Extract”, “Partial Mash” or “All Grain” Type Recipe_RecipeType `xml:"TYPE" json:"type,omitempty"` // The style of the beer this recipe is associated with. All of the required items for a valid style should be // between the <STYLE>…</STYLE> tags. Style *Style `xml:"STYLE,omitempty" json:"style,omitempty"` // An equipment record is optional. If included the BATCH_SIZE and BOIL_SIZE in the equipment record must match // the values in this recipe record. Equipment *Equipment `xml:"EQUIPMENT" json:"equipment,omitempty"` // Name of the brewer Brewer string `xml:"BREWER" json:"author,omitempty"` // Optional name of the assistant brewer AsstBrewer *string `xml:"ASST_BREWER,omitempty" json:"coauthor,omitempty"` // Target size of the finished batch in liters. BatchSize float64 `xml:"BATCH_SIZE" json:"batch_size,omitempty"` // Starting size for the main boil of the wort in liters. BoilSize float64 `xml:"BOIL_SIZE" json:"boil_size,omitempty"` // The total time to boil the wort in minutes. BoilTime float64 `xml:"BOIL_TIME" json:"boil_time,omitempty"` // The percent brewhouse efficiency to be used for estimating the starting gravity of the beer. // Not required for “Extract” recipes, but is required for “Partial Mash” and “All Grain” recipes. Efficiency *float64 `xml:"EFFICIENCY,omitempty" json:"efficiency,omitempty"` // Zero or more HOP ingredient records may appear between the <HOPS>…</HOPS> tags. Hops Hops `xml:"HOPS" json:"hops,omitempty"` // Zero or more FERMENTABLE ingredients may appear between the <FERMENTABLES> … </FERMENTABLES> tags. Fermentables Fermentables `xml:"FERMENTABLES" json:"fermentables,omitempty"` // Zero or more Misc records may appear between <MISCS> … </MISCS> Miscs MISCS `xml:"MISCS" json:"miscs,omitempty"` // Zero or more YEAST records may appear between <YEASTS> … </YEASTS> Yeasts Yeasts `xml:"YEASTS" json:"yeasts,omitempty"` // Zero or more WATER records may appear between <WATERS> … </WATERS> Waters Waters `xml:"WATERS" json:"waters,omitempty"` // A MASH profile record containing one or more MASH_STEPs. NOTE: No Mash record is needed for “Extract” type // brews. Mash *Mash `xml:"MASH" json:"mash,omitempty"` // Notes associated with this recipe – may be multiline. Notes *string `xml:"NOTES,omitempty" json:"notes,omitempty"` // Tasting notes – may be multiline. TasteNotes *string `xml:"TASTE_NOTES,omitempty" json:"taste_notes,omitempty"` // Number between zero and 50.0 denoting the taste rating – corresponds to the 50 point BJCP rating system. TasteRating *float64 `xml:"TASTE_RATING,omitempty" json:"taste_rating,omitempty"` // The measured original (pre-fermentation) specific gravity of the beer. OG *float64 `xml:"OG,omitempty" json:"og,omitempty"` // The measured final gravity of the finished beer. FG *float64 `xml:"FG,omitempty" json:"fg,omitempty"` // The number of fermentation stages used – typically a number between one and three FermentationStages *int32 `xml:"FERMENTATION_STAGES,omitempty" json:"fermentation_stages,omitempty"` // Time spent in the primary in days PrimaryAge *int32 `xml:"PRIMARY_AGE,omitempty" json:"primary_age,omitempty"` // Temperature in degrees Celsius for the primary fermentation. PrimaryTemp *float64 `xml:"PRIMARY_TEMP,omitempty" json:"primary_temp,omitempty"` // Time spent in the secondary in days. SecondaryAge *int32 `xml:"SECONDARY_AGE,omitempty" json:"secondary_age,omitempty"` // Temperature in degrees Celsius for the secondary fermentation. SecondaryTemp *float64 `xml:"SECONDARY_TEMP,omitempty" json:"secondary_temp,omitempty"` // Time spent in the third fermenter in days. TertiaryAge *int32 `xml:"TERTIARY_AGE,omitempty" json:"tertiary_age,omitempty"` // Temperature in the tertiary fermenter. TertiaryTemp *float64 `xml:"TERTIARY_TEMP,omitempty" json:"tertiary_temp,omitempty"` // The time to age the beer in days after bottling. Age *float32 `xml:"AGE,omitempty" json:"age,omitempty"` // Temperature for aging the beer after bottling. AgeTemp *float64 `xml:"AGE_TEMP,omitempty" json:"age_temp,omitempty"` // Date brewed in a easily recognizable format such as “3 Dec 04”. Date *string `xml:"DATE,omitempty" json:"date,omitempty"` // Floating point value corresponding to the target volumes of CO2 used to carbonate this beer. Carbonation *float64 `xml:"CARBONATION,omitempty" json:"carbonation,omitempty"` // TRUE if the batch was force carbonated using CO2 pressure, // FALSE if the batch was carbonated using a priming agent. Default is FALSE ForcedCarbonation *bool `xml:"FORCED_CARBONATION,omitempty" json:"forced_carbonation,omitempty"` // Text describing the priming agent such as “Honey” or “Corn Sugar” – used only if this is not a forced // carbonation PrimingSugarName *string `xml:"PRIMING_SUGAR_NAME,omitempty" json:"priming_sugar_name,omitempty"` // The temperature for either bottling or forced carbonation. CarbonationTemp *float64 `xml:"CARBONATION_TEMP,omitempty" json:"carbonation_temp,omitempty"` // Factor used to convert this priming agent to an equivalent amount of corn sugar for a bottled scenario. // For example, “Dry Malt Extract” would have a value of 1.4 because it requires 1.4 times as much DME as // corn sugar to carbonate. To calculate the amount of DME needed, the program can calculate the amount of // corn sugar needed and then multiply by this factor. PrimingSugarEquiv *float64 `xml:"PRIMING_SUGAR_EQUIV,omitempty" json:"priming_sugar_equiv,omitempty"` // Used to factor in the smaller amount of sugar needed for large containers. // For example, this might be 0.5 for a typical 5 gallon keg since naturally priming a keg requires about 50% // as much sugar as priming bottles. KegPrimingFactor *float64 `xml:"KEG_PRIMING_FACTOR,omitempty" json:"keg_priming_factor,omitempty"` // Calculated estimate of the original gravity for this recipe along with the units. EstOG *Measureable `xml:"EST_OG,omitempty" json:"est_og,omitempty"` // Calculated estimate for the final specific gravity of this recipe along with the units as in “1.015 sg” EstFF *Measureable `xml:"EST_FG,omitempty" json:"est_fg,omitempty"` // The estimated color of the beer in user defined color units. EstColor *Measureable `xml:"EST_COLOR,omitempty" json:"est_color,omitempty"` // The estimated bitterness level of the beer in IBUs IBU *float64 `xml:"IBU,omitempty" json:"ibu,omitempty"` // May be “Rager”, “Tinseth” or “Garetz” corresponding to the method/equation used to estimate IBUs for this recipe. IBUMethod *string `xml:"IBU_METHOD,omitempty" json:"ibu_method,omitempty"` // Estimated percent alcohol by volume for this recipe. EstABV *float64 `xml:"EST_ABV,omitempty" json:"est_abv,omitempty"` // Actual alcohol by volume calculated from the OG and FG measured. ABV *float64 `xml:"ABV,omitempty" json:"abv,omitempty"` // The actual efficiency as calculated using the measured original and final gravity. ActualEfficiency *float64 `xml:"ACTUAL_EFFICIENCY,omitempty" json:"actual_efficiency,omitempty"` // Calorie estimate based on the measured starting and ending gravity. Note that calories should be quoted in // “Cal” or kilocalories which is the normal dietary measure // (i.e. a beer is usually in the range of 100-250 calories per 12 oz). Examples “180 Cal/pint”, Calories *string `xml:"CALORIES,omitempty" json:"calories,omitempty"` // Batch size in user defined units along with the units as in “5.0 gal” DisplayBatchSize *string `xml:"DISPLAY_BATCH_SIZE,omitempty" json:"DISPLAY_BATCH_SIZE,omitempty"` // Boil size with user defined units as in “6.3 gal” DisplayBoilSize *string `xml:"DISPLAY_BOIL_SIZE,omitempty" json:display_boil_size,omitempty"` // Measured original gravity in user defined units as in “6.4 plato” DisplayOG *string `xml:"DISPLAY_OG,omitempty" json:"display_og,omitempty"` // Measured final gravity in user defined units as in “1.035 sg” DisplayFG *string `xml:"DISPLAY_FG,omitempty" json:"display_fg,omitempty"` // Primary fermentation temperature in user defined units such as “64 F” DisplayPrimaryTemp *string `xml:"DISPLAY_PRIMARY_TEMP,omitempty" json:"display_primary_temp,omitempty"` // Secondary fermentation temperature in user defined units such as “56 F” DisplaySecondaryTemp *string `xml:"DISPLAY_SECONDARY_TEMP,omitempty" json:"display_secondary_temp,omitempty"` // Tertiary temperature in user defined units such as “20 C” DisplayTertiaryTemp *string `xml:"DISPLAY_TERTIARY_TEMP,omitempty" json:"display_tertiary_temp,omitempty"` // Temperature to use when aging the beer in user units such as “55 F” DisplayAgeTemp *string `xml:"DISPLAY_AGE_TEMP,omitempty" json:"display_age_temp,omitempty"` // Text description of the carbonation used such as “50g corn sugar” or “Kegged at 20psi” CarbonationUsed *string `xml:"CARBONATION_USED,omitempty" json:"carbonation_used,omitempty"` // Carbonation/Bottling temperature in appropriate units such as “40F” or “32 C” DisplayCarbTemp *string `xml:"DISPLAY_CARB_TEMP,omitempty" json:"display_carb_temp,omitempty"` }
A recipe record denotes a single recipe. A recipe record may use records from any of the previously described record formats to specify ingredients and other data.
func (Recipe) MarshalXML ¶
func (*Recipe) UnmarshalXML ¶
type Recipe_RecipeType ¶
type Recipe_RecipeType int32
const ( // None RECIPE_RECIPE_NONE Recipe_RecipeType = 0 // Extract RECIPE_EXTRACT Recipe_RecipeType = 1 // Partial Mash RECIPE_PARTIAL_MASH Recipe_RecipeType = 2 // All Grain RECIPE_ALL_GRAIN Recipe_RecipeType = 3 // Cider RECIPE_CIDER Recipe_RecipeType = 4 // Kombucha RECIPE_KOMBUCHA Recipe_RecipeType = 5 // Soda RECIPE_SODA Recipe_RecipeType = 6 // Other RECIPE_OTHER Recipe_RecipeType = 7 // Mead RECIPE_MEAD Recipe_RecipeType = 8 // Wine RECIPE_WINE Recipe_RecipeType = 9 )
func (Recipe_RecipeType) MarshalXML ¶
func (a Recipe_RecipeType) MarshalXML(e *xml.Encoder, start xml.StartElement) error
func (*Recipe_RecipeType) UnmarshalXML ¶
func (a *Recipe_RecipeType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
type Style ¶
type Style struct { // Name of the style profile – usually this is the specific name of the style – for example // “Scottish Wee Heavy Ale” and not the Category which in this case might be “Scottish Ale” Name string `xml:"NAME" json:"name,omitempty"` // Category that this style belongs to – usually associated with a group of styles such as “English Ales” // or “Amercian Lagers”. Category string `xml:"CATEGORY" json:"category,omitempty"` // Version of the style record. Should always be “1” for this version of the XML standard. Version int32 `xml:"VERSION" json:"version,omitempty"` // Number or identifier associated with this style category. For example in the BJCP style guide, // the “American Lager” category has a category number of “1”. CategoryNumber string `xml:"CATEGORY_NUMBER" json:"category_number,omitempty"` // The specific style number or subcategory letter associated with this particular style. // For example in the BJCP style guide, an American Standard Lager would be style letter “A” // under the main category. Letters should be upper case. StyleLetter string `xml:"STYLE_LETTER" json:"style_letter,omitempty"` // The name of the style guide that this particular style or category belongs to. // For example “BJCP” might denote the BJCP style guide, and “AHA” would be used for the AHA style guide. StyleGuide string `xml:"STYLE_GUIDE" json:"style_guide,omitempty"` // May be “Lager”, “Ale”, “Mead”, “Wheat”, “Mixed” or “Cider”. Defines the type of beverage // associated with this category. Type Style_StyleType `xml:"TYPE" json:"type,omitempty"` // The minimum specific gravity as measured relative to water. For example “1.040” might be a reasonable // minimum for a Pale Ale. OGMin float64 `xml:"OG_MIN" json:"og_min,omitempty"` // The maximum specific gravity as measured relative to water. OGMax float64 `xml:"OG_MAX" json:"og_max,omitempty"` // The minimum final gravity as measured relative to water. FGMin float64 `xml:"FG_MIN" json:"fg_min,omitempty"` // The maximum final gravity as measured relative to water. FGMax float64 `xml:"FG_MAX" json:"fg_max,omitempty"` // The recommended minimum bitterness for this style as measured in International Bitterness Units (IBUs) IBUMin float64 `xml:"IBU_MIN" json:"ibu_min,omitempty"` // The recommended maximum bitterness for this style as measured in International Bitterness Units (IBUs) IBUMax float64 `xml:"IBU_MAX" json:"ibu_max,omitempty"` // The minimum recommended color in SRM ColorMin float64 `xml:"COLOR_MIN" json:"color_min,omitempty"` // The maximum recommended color in SRM. ColorMax float64 `xml:"COLOR_MAX" json:"color_max,omitempty"` // Minimum recommended carbonation for this style in volumes of CO2 CarbMin *float64 `xml:"CARB_MIN,omitempty" json:"carb_min,omitempty"` // The maximum recommended carbonation for this style in volumes of CO2 CarbMax *float64 `xml:"CARB_MAX,omitempty" json:"carb_max,omitempty"` // The minimum recommended alcohol by volume as a percentage. ABVMmin *float64 `xml:"ABV_MIN,omitempty" json:"abv_min,omitempty"` // The maximum recommended alcohol by volume as a percentage. ABVMax *float64 `xml:"ABV_MAX,omitempty" json:"abv_max,omitempty"` // Description of the style, history Notes *string `xml:"NOTES,omitempty" json:"notes,omitempty"` // Flavor and aroma profile for this style Profile *string `xml:"PROFILE,omitempty" json:"profile,omitempty"` // Suggested ingredients for this style Ingredients *string `xml:"INGREDIENTS,omitempty" json:"ingredients,omitempty"` // Example beers of this style. Examples *string `xml:"EXAMPLES,omitempty" json:"examples,omitempty"` // Original gravity minimum in user defined units such as “1.036 sg”. DisplayOGMin *string `xml:"DISPLAY_OG_MIN" json:"display_og_min,omitempty"` // Original gravity max in user defined units such as “1.056 sg” DisplayOGMax *string `xml:"DISPLAY_OG_MAX" json:"display_og_max,omitempty"` // Final gravity minimum in user defined units such as “1.010 sg”. DisplayFGMin *string `xml:"DISPLAY_FG_MIN" json:"display_fg_min,omitempty"` // Final gravity maximum in user defined units such as “1.019 sg”. DisplayFGMax *string `xml:"DISPLAY_FG_MAX" json:"display_fg_max,omitempty"` // Minimum color in user defined units such as “30 srm”. DisplayColorMin *string `xml:"DISPLAY_COLOR_MIN" json:"display_color_min,omitempty"` // Maximum color in user defined units such as “20 srm” DisplayColorMax *string `xml:"DISPLAY_COLOR_MAX" json:"display_color_max,omitempty"` // Original gravity range for the style such as “1.030-1.040 sg” OGRange *string `xml:"OG_RANGE" json:"og_range,omitempty"` // Final gravity range such as “1.010-1.015 sg” FGRange *string `xml:"FG_RANGE" json:"fg_range,omitempty"` // Bitterness range in IBUs such as “10-20 IBU” IBURange *string `xml:"IBU_RANGE" json:"ibu_range,omitempty"` // Carbonation range in volumes such as “2.0-2.6 vols” CarbRange *string `xml:"CARB_RANGE" json:"carb_range,omitempty"` // Color range such as “10-20 SRM” ColorRange *string `xml:"COLOR_RANGE" json:"color_range,omitempty"` // Color range such as “10-20 SRM” ABVRange *string `xml:"ABV_RANGE" json:"abv_range,omitempty"` }
The term "style" encompasses beer styles. The beer style may be from the BJCP style guide, Australian, UK or local style guides. Generally a recipe is designed to one style.
func (Style) MarshalXML ¶
func (*Style) UnmarshalXML ¶
type Style_StyleType ¶
type Style_StyleType int32
const ( // None STYLE_STYLE_NONE Style_StyleType = 0 // Lager STYLE_LAGER Style_StyleType = 1 // Ale STYLE_ALE Style_StyleType = 2 // Mead STYLE_MEAD Style_StyleType = 3 // Wheat STYLE_WHEAT Style_StyleType = 4 // Mixed STYLE_MIXED Style_StyleType = 5 // Cider STYLE_CIDER Style_StyleType = 6 )
func (Style_StyleType) MarshalXML ¶
func (a Style_StyleType) MarshalXML(e *xml.Encoder, start xml.StartElement) error
func (*Style_StyleType) UnmarshalXML ¶
func (a *Style_StyleType) UnmarshalXML(d *xml.Decoder, start xml.StartElement) error
type Styles ¶
type Styles struct {
Style []Style `xml:"STYLE" json:"style,omitempty"`
}
Encloses a set of one or more Beer Styles
type Water ¶
type Water struct { // Name of the water profile – usually the city and country of the water profile. Name string `xml:"NAME" json:"name,omitempty"` // Version of the water record. Should always be “1” for this version of the XML standard. Version int32 `xml:"VERSION" json:"version,omitempty"` // Volume of water to use in a recipe in liters. Amount float64 `xml:"AMOUNT" json:"amount,omitempty"` // The amount of calcium (Ca) in parts per million. Calcium float64 `xml:"CALCIUM" json:"calcium,omitempty"` // The amount of bicarbonate (HCO3) in parts per million. Bicarbonate float64 `xml:"BICARBONATE" json:"bicarbonate,omitempty"` // The amount of Sulfate (SO4) in parts per million. Sulfate float64 `xml:"SULFATE" json:"sulfate,omitempty"` // The amount of Chloride (Cl) in parts per million. Chloride float64 `xml:"CHLORIDE" json:"chloride,omitempty"` // The amount of Sodium (Na) in parts per million. Sodium float64 `xml:"SODIUM" json:"sodium,omitempty"` // The amount of Magnesium (Mg) in parts per million. Magnesium float64 `xml:"MAGNESIUM" json:"magnesium,omitempty"` // The PH of the water. PH *float64 `xml:"PH,omitempty" json:"ph,omitempty"` Notes *string `xml:"NOTES,omitempty" json:"notes,omitempty"` // The amount of water in this record along with the units formatted for easy display in the current // user defined units. For example “5.0 gal” or “20.0 l”. DisplayAmount *string `xml:"DISPLAY_AMOUNT,omitempty" json:"display_amount,omitempty"` }
The term "water" encompasses water profiles. Though not strictly required for recipes, the water record allows supporting programs to record the water profile used for brewing a particular batch.
func (Water) MarshalXML ¶
func (*Water) UnmarshalXML ¶
type Waters ¶
type Waters struct {
Water []Water `xml:"WATER" json:"water,omitempty"`
}
Encloses a set of one or more Water records
type Yeast ¶
type Yeast struct { // Name of the yeast. Name string `xml:"NAME" json:"name,omitempty"` // Version of the standard. Should be “1” for this version. Version int32 `xml:"VERSION" json:"version,omitempty"` // May be “Ale”, “Lager”, “Wheat”, “Wine” or “Champagne” Type Culture_CultureType `xml:"TYPE" json:"type,omitempty"` // May be “Liquid”, “Dry”, “Slant” or “Culture” Form Culture_FormType `xml:"FORM" json:"form,omitempty"` // The amount of yeast, measured in liters. For a starter this is the size of the starter. // If the flag AMOUNT_IS_WEIGHT is set to TRUE then this measurement is in kilograms and not liters. Amount float64 `xml:"AMOUNT" json:"amount,omitempty"` // TRUE if the amount measurement is a weight measurement and FALSE if the amount is a volume measurement. // Default value (if not present) is assumed to be FALSE – therefore the yeast measurement is a liquid // amount by default. AmountIsWeight *bool `xml:"AMOUNT_IS_WEIGHT,omitempty" json:"amount_is_weight,omitempty"` // The name of the laboratory that produced the yeast. Laboratory *string `xml:"LABORATORY,omitempty" json:"laboratory,omitempty"` // The manufacturer’s product ID label or number that identifies this particular strain of yeast. ProductID *string `xml:"PRODUCT_ID,omitempty" json:"product_id,omitempty"` // The minimum recommended temperature for fermenting this yeast strain in degrees Celsius. MinTemperature *float64 `xml:"MIN_TEMPERATURE,omitempty" json:"min_temperature,omitempty"` // The maximum recommended temperature for fermenting this yeast strain in Celsius. MaxTemperature *float64 `xml:"MAX_TEMPERATURE,omitempty" json:"max_temperature,omitempty"` // May be “Low”, “Medium”, “High” or “Very High” Flocculation *string `xml:"FLOCCULATION,omitempty" json:"flocculation,omitempty"` // Average attenuation for this yeast strain. Attenuation *float64 `xml:"ATTENUATION,omitempty" json:"attenuation,omitempty"` // Notes on this yeast strain. May be a multiline entry. Notes *string `xml:"NOTES,omitempty" json:"notes,omitempty"` // Styles or types of beer this yeast strain is best suited for. BestFor *string `xml:"BEST_FOR,omitempty" json:"best_for,omitempty"` // Number of times this yeast has been reused as a harvested culture. This number should be zero if this is a // product directly from the manufacturer. TimesCultured *float64 `xml:"TIMES_CULTURED,omitempty" json:"times_cultured,omitempty"` // Recommended of times this yeast can be reused (recultured from a previous batch) MaxReuse *float64 `xml:"MAX_REUSE,omitempty" json:"max_reuse,omitempty"` // Flag denoting that this yeast was added for a secondary (or later) fermentation as opposed to the primary // fermentation. Useful if one uses two or more yeast strains for a single brew (eg: Lambic). // Default value is FALSE. AddToSecondary *bool `xml:"ADD_TO_SECONDARY,omitempty" json:"add_to_secondary,omitempty"` // The amount of yeast or starter in this record along with the units formatted for easy display in the // current user defined units. For example “1.5 oz” or “100 g”. DisplayAmount *string `xml:"DISPLAY_AMOUNT,omitempty" json:"display_amount,omitempty"` // Minimum fermentation temperature converted to current user units along with the units. // For example “54.0 F” or “24.2 C” DispMinTemp *string `xml:"DISP_MIN_TEMP,omitempty" json:"disp_min_temp,omitempty"` // Maximum fermentation temperature converted to current user units along with the units. // For example “54.0 F” or “24.2 C” DispMaxTemp *string `xml:"DISP_MAX_TEMP,omitempty" json:"disp_max_temp,omitempty"` // Amount in inventory for this hop along with the units – for example “10.0 pkgs” Inventory *string `xml:"INVENTORY,omitempty" json:"inventory,omitempty"` // Date sample was last cultured in a neutral date form such as “10 Dec 04” CultureDate *string `xml:"CULTURE_DATE,omitempty" json:"culture_date,omitempty"` }
The term "yeast" encompasses all yeasts, including dry yeast, liquid yeast and yeast starters.