Minor optimization
This commit is contained in:
parent
5efc4d5533
commit
275ce060f0
@ -5,6 +5,7 @@
|
||||
#include "StringValue.h"
|
||||
#include "ListValue.h"
|
||||
#include "HazelnuppException.h"
|
||||
#include "Placeholders.h"
|
||||
#include "StringTools.h"
|
||||
#include <iostream>
|
||||
#include <cstdlib>
|
||||
@ -320,12 +321,12 @@ void Hazelnp::Hazelnupp::RegisterDescription(const std::string& parameter, const
|
||||
return;
|
||||
}
|
||||
|
||||
std::string Hazelnp::Hazelnupp::GetDescription(const std::string& parameter) const
|
||||
const std::string& Hazelnp::Hazelnupp::GetDescription(const std::string& parameter) const
|
||||
{
|
||||
// Do we already have a description for this parameter?
|
||||
if (!HasDescription(parameter))
|
||||
// No? Then return ""
|
||||
return "";
|
||||
return Placeholders::g_emptyString;
|
||||
|
||||
// We do? Then return it
|
||||
return parameterDescriptions.find(parameter)->second;
|
||||
@ -523,10 +524,10 @@ void Hazelnupp::RegisterAbbreviation(const std::string& abbrev, const std::strin
|
||||
return;
|
||||
}
|
||||
|
||||
std::string Hazelnupp::GetAbbreviation(const std::string& abbrev) const
|
||||
const std::string& Hazelnupp::GetAbbreviation(const std::string& abbrev) const
|
||||
{
|
||||
if (!HasAbbreviation(abbrev))
|
||||
return "";
|
||||
return Placeholders::g_emptyString;
|
||||
|
||||
return parameterAbreviations.find(abbrev)->second;
|
||||
}
|
||||
|
@ -34,7 +34,7 @@ namespace Hazelnp
|
||||
|
||||
//! Will return the long form of an abbreviation (like --force for -f)
|
||||
//! Returns "" if no match is found
|
||||
std::string GetAbbreviation(const std::string& abbrev) const;
|
||||
const std::string& GetAbbreviation(const std::string& abbrev) const;
|
||||
|
||||
//! Will check wether or not an abbreviation is registered
|
||||
bool HasAbbreviation(const std::string& abbrev) const;
|
||||
@ -85,7 +85,7 @@ namespace Hazelnp
|
||||
|
||||
//! Will return a short description for a parameter, if it exists.
|
||||
//! Empty string if it does not exist.
|
||||
std::string GetDescription(const std::string& parameter) const;
|
||||
const std::string& GetDescription(const std::string& parameter) const;
|
||||
|
||||
//! Returns whether or not a given parameter has a registered description
|
||||
bool HasDescription(const std::string& parameter) const;
|
||||
|
11
Hazelnupp/Placeholders.h
Normal file
11
Hazelnupp/Placeholders.h
Normal file
@ -0,0 +1,11 @@
|
||||
#pragma once
|
||||
#include <string>
|
||||
|
||||
namespace Hazelnp
|
||||
{
|
||||
namespace Placeholders
|
||||
{
|
||||
//! The only purpose of this is to provide the ability to return an empty string as an error for std::string& methods.
|
||||
static const std::string g_emptyString;
|
||||
}
|
||||
}
|
@ -44,10 +44,11 @@ double VoidValue::GetFloat32() const
|
||||
|
||||
std::string VoidValue::GetString() const
|
||||
{
|
||||
throw HazelnuppValueNotConvertibleException();
|
||||
return "";
|
||||
}
|
||||
|
||||
const std::vector<Value*>& VoidValue::GetList() const
|
||||
{
|
||||
throw HazelnuppValueNotConvertibleException();
|
||||
static const std::vector<Value*> empty;
|
||||
return empty;
|
||||
}
|
||||
|
@ -27,10 +27,10 @@ namespace Hazelnp
|
||||
//! Throws HazelnuppValueNotConvertibleException
|
||||
double GetFloat32() const override;
|
||||
|
||||
//! Throws HazelnuppValueNotConvertibleException
|
||||
//! Returns an empty string
|
||||
std::string GetString() const override;
|
||||
|
||||
//! Throws HazelnuppValueNotConvertibleException
|
||||
//! Returns an empty list
|
||||
const std::vector<Value*>& GetList() const;
|
||||
};
|
||||
}
|
||||
|
@ -112,20 +112,11 @@ namespace TestHazelnupp
|
||||
}
|
||||
, L"Float32");
|
||||
|
||||
Assert::ExpectException<HazelnuppValueNotConvertibleException>(
|
||||
[ptnupp]
|
||||
{
|
||||
(*ptnupp)["--pud"].GetString();
|
||||
}
|
||||
, L"String");
|
||||
|
||||
Assert::ExpectException<HazelnuppValueNotConvertibleException>(
|
||||
[ptnupp]
|
||||
{
|
||||
(*ptnupp)["--pud"].GetList();
|
||||
}
|
||||
, L"List");
|
||||
// Expect empty string
|
||||
Assert::AreEqual(std::string(), nupp["--pud"].GetString(), L"String");
|
||||
|
||||
// Expect empty list
|
||||
Assert::AreEqual(std::size_t(0), nupp["--pud"].GetList().size(), L"List");
|
||||
|
||||
return;
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user