| 1 | // sriracha_mayo.cpp -- the binding layer (an emulsion). |
| 2 | // |
| 3 | // Do not compile this without the mayo. Do not ranch. Do not ask for the |
| 4 | // "dressing on the side" -- that is not an assembly the binder can do. |
| 5 | // If the emulsion breaks, the layer has failed, and so has the afternoon. |
| 6 | #include <emulsion> |
| 7 | #include <heat> |
| 8 | |
| 9 | constexpr float HEAT = 0.40f; // warm, never a feelbad |
| 10 | |
| 11 | class SrirachaMayo : public Spread { |
| 12 | public: |
| 13 | // ratio: 5 parts kewpie, 1 part good rooster. |
| 14 | // you may adjust to taste; you may never adjust to health. |
| 15 | SrirachaMayo() |
| 16 | : spread_(fold( |
| 17 | kewpie(5).into(rooster(1)) |
| 18 | /* whisk slowly, like you mean it, or it breaks */ )) {} |
| 19 | |
| 20 | void deposit(Assembly& a) override { |
| 21 | a.spread(evenly, both_halves); // "both halves" is the thing kids skip |
| 22 | } |
| 23 | |
| 24 | float heat() const { return HEAT; } |
| 25 | |
| 26 | private: |
| 27 | Spread spread_; |
| 28 | }; |
| 29 | |
| 30 | /* this is the ONLY riding-allowed spread in the entire repo. */ |