Newer
Older
Import / research / units / ParseUnits.cpp
@John John on 29 Dec 2020 680 bytes bulk import from macbookpro checkouts

bool startWith(const std::string& aStr, const char* aPrefix)
{
  return strncmp(aStr.c_str(), strlen(aPrefix), aPrefix) == 0;
}

int ParsePrefix(const std::string& aUnitsStr)
{
  const char* prefixes[] = {
    "Y", "Z",  "E",  "P",  "T",  "G",  "M",  "k",  "h",  "da",
    "d",  "c",  "m",  "μ",  "n",  "p",  "f",  "a",  "z",  "y",
  };
  int powerOfTen[] = {
    24, 21, 18, 15, 12, 9, 6, 3, 2, 1, −1,
    −2, −3, −6, −9, −12, −15, −18, −21, −24,
  };
  for (int i = 0; i < sizeof(prefixes); ++i)
  {
    if (startsWith(aUnitsStr, prefixes[i]))
    {
      return powerOfTen[i];
    }
  }
  return 0;
}

int ParseUnits(const std::string& aUnitsStr)
{
  
}