mirror of
https://github.com/UpsilonNumworks/Upsilon.git
synced 2026-03-22 23:30:37 +01:00
[poincare] Units: change signature of serialize to follow same
conventions as Expression::serialize
This commit is contained in:
@@ -30,7 +30,7 @@ public:
|
||||
{}
|
||||
const char * symbol() const { return m_symbol; }
|
||||
const int8_t exponent() const { return m_exponent; }
|
||||
size_t serialize(char * buffer, size_t length) const;
|
||||
int serialize(char * buffer, int bufferSize) const;
|
||||
private:
|
||||
const char * m_symbol;
|
||||
int8_t m_exponent;
|
||||
@@ -51,7 +51,7 @@ public:
|
||||
const Prefix * allowedPrefixesUpperBound() const { return m_allowedPrefixesUpperBound; }
|
||||
bool canParse(const char * symbol, size_t length,
|
||||
const Prefix * * prefix) const;
|
||||
size_t serialize(char * buffer, size_t length, const Prefix * prefix) const;
|
||||
int serialize(char * buffer, int bufferSize, const Prefix * prefix) const;
|
||||
private:
|
||||
const char * m_rootSymbol;
|
||||
const char * m_definition;
|
||||
|
||||
@@ -10,8 +10,9 @@ namespace Poincare {
|
||||
|
||||
static inline int minInt(int x, int y) { return x < y ? x : y; }
|
||||
|
||||
size_t UnitNode::Prefix::serialize(char * buffer, size_t length) const {
|
||||
return minInt(strlcpy(buffer, m_symbol, length), length - 1);
|
||||
int UnitNode::Prefix::serialize(char * buffer, int bufferSize) const {
|
||||
assert(bufferSize >= 0);
|
||||
return minInt(strlcpy(buffer, m_symbol, bufferSize), bufferSize - 1);
|
||||
}
|
||||
|
||||
bool UnitNode::Representative::canParse(const char * symbol, size_t length,
|
||||
@@ -31,11 +32,12 @@ bool UnitNode::Representative::canParse(const char * symbol, size_t length,
|
||||
return false;
|
||||
}
|
||||
|
||||
size_t UnitNode::Representative::serialize(char * buffer, size_t length, const Prefix * prefix) const {
|
||||
size_t prefixLength = prefix->serialize(buffer, length);
|
||||
int UnitNode::Representative::serialize(char * buffer, int bufferSize, const Prefix * prefix) const {
|
||||
int prefixLength = prefix->serialize(buffer, bufferSize);
|
||||
assert(prefixLength < bufferSize);
|
||||
buffer += prefixLength;
|
||||
length -= prefixLength;
|
||||
return prefixLength + minInt(strlcpy(buffer, m_rootSymbol, length), length - 1);
|
||||
bufferSize -= prefixLength;
|
||||
return prefixLength + minInt(strlcpy(buffer, m_rootSymbol, bufferSize), bufferSize - 1);
|
||||
}
|
||||
|
||||
bool UnitNode::Dimension::canParse(const char * symbol, size_t length,
|
||||
|
||||
Reference in New Issue
Block a user