Removes std::optional from the API

This reverts commit 8aef4d549e.

Signed-off-by: Ethan Mahintorabi <[email protected]>
This commit is contained in:
Ethan Mahintorabi
2024-03-12 20:19:35 +00:00
parent a59adbb019
commit d9244a7289
8 changed files with 25 additions and 43 deletions
+1 -2
View File
@@ -17,7 +17,6 @@
#pragma once #pragma once
#include <functional> #include <functional>
#include <optional>
#include "Vector.hh" #include "Vector.hh"
#include "Map.hh" #include "Map.hh"
@@ -109,7 +108,7 @@ public:
void setIsLeaf(bool is_leaf); void setIsLeaf(bool is_leaf);
void setAttribute(const std::string &key, void setAttribute(const std::string &key,
const std::string &value); const std::string &value);
std::optional<std::string> getAttribute(const std::string &key) const; std::string getAttribute(const std::string &key) const;
// Cell acts as port factory. // Cell acts as port factory.
ConcretePort *makePort(const char *name); ConcretePort *makePort(const char *name);
+3 -4
View File
@@ -17,7 +17,6 @@
#pragma once #pragma once
#include <functional> #include <functional>
#include <optional>
#include "Map.hh" #include "Map.hh"
#include "Set.hh" #include "Set.hh"
@@ -76,7 +75,7 @@ public:
const PatternMatch *pattern) const override; const PatternMatch *pattern) const override;
const char *name(const Cell *cell) const override; const char *name(const Cell *cell) const override;
std::optional<std::string> getAttribute(const Cell *cell, std::string getAttribute(const Cell *cell,
const std::string &key) const override; const std::string &key) const override;
ObjectId id(const Cell *cell) const override; ObjectId id(const Cell *cell) const override;
Library *library(const Cell *cell) const override; Library *library(const Cell *cell) const override;
@@ -112,7 +111,7 @@ public:
PortMemberIterator *memberIterator(const Port *port) const override; PortMemberIterator *memberIterator(const Port *port) const override;
const char *name(const Instance *instance) const override; const char *name(const Instance *instance) const override;
std::optional<std::string> getAttribute(const Instance *inst, std::string getAttribute(const Instance *inst,
const std::string &key) const override; const std::string &key) const override;
ObjectId id(const Instance *instance) const override; ObjectId id(const Instance *instance) const override;
Cell *cell(const Instance *instance) const override; Cell *cell(const Instance *instance) const override;
@@ -299,7 +298,7 @@ public:
InstanceChildIterator *childIterator() const; InstanceChildIterator *childIterator() const;
void setAttribute(const std::string &key, void setAttribute(const std::string &key,
const std::string &value); const std::string &value);
std::optional<std::string> getAttribute(const std::string &key) const; std::string getAttribute(const std::string &key) const;
void addChild(ConcreteInstance *child); void addChild(ConcreteInstance *child);
void deleteChild(ConcreteInstance *child); void deleteChild(ConcreteInstance *child);
void addPin(ConcretePin *pin); void addPin(ConcretePin *pin);
+2 -3
View File
@@ -17,7 +17,6 @@
#pragma once #pragma once
#include <functional> #include <functional>
#include <optional>
#include "Map.hh" #include "Map.hh"
#include "StringUtil.hh" #include "StringUtil.hh"
@@ -146,7 +145,7 @@ public:
// Filename may return null. // Filename may return null.
virtual const char *filename(const Cell *cell) = 0; virtual const char *filename(const Cell *cell) = 0;
// Attributes can be null // Attributes can be null
virtual std::optional<std::string> getAttribute(const Cell *cell, virtual std::string getAttribute(const Cell *cell,
const std::string &key) const = 0; const std::string &key) const = 0;
// Name can be a simple, bundle, bus, or bus bit name. // Name can be a simple, bundle, bus, or bus bit name.
virtual Port *findPort(const Cell *cell, virtual Port *findPort(const Cell *cell,
@@ -210,7 +209,7 @@ public:
const PatternMatch *pattern) const; const PatternMatch *pattern) const;
virtual InstanceSeq findInstancesHierMatching(const Instance *instance, virtual InstanceSeq findInstancesHierMatching(const Instance *instance,
const PatternMatch *pattern) const; const PatternMatch *pattern) const;
virtual std::optional<std::string> getAttribute(const Instance *inst, virtual std::string getAttribute(const Instance *inst,
const std::string &key) const = 0; const std::string &key) const = 0;
// Hierarchical path name. // Hierarchical path name.
virtual const char *pathName(const Instance *instance) const; virtual const char *pathName(const Instance *instance) const;
+2 -3
View File
@@ -17,7 +17,6 @@
#pragma once #pragma once
#include <functional> #include <functional>
#include <optional>
#include "Network.hh" #include "Network.hh"
@@ -46,7 +45,7 @@ public:
const PatternMatch *pattern) const override; const PatternMatch *pattern) const override;
const char *name(const Cell *cell) const override; const char *name(const Cell *cell) const override;
std::optional<std::string> getAttribute(const Cell *cell, std::string getAttribute(const Cell *cell,
const std::string &key) const override; const std::string &key) const override;
ObjectId id(const Cell *cell) const override; ObjectId id(const Cell *cell) const override;
Library *library(const Cell *cell) const override; Library *library(const Cell *cell) const override;
@@ -83,7 +82,7 @@ public:
bool hasMembers(const Port *port) const override; bool hasMembers(const Port *port) const override;
ObjectId id(const Instance *instance) const override; ObjectId id(const Instance *instance) const override;
std::optional<std::string> getAttribute(const Instance *inst, std::string getAttribute(const Instance *inst,
const std::string &key) const override; const std::string &key) const override;
Instance *topInstance() const override; Instance *topInstance() const override;
Cell *cell(const Instance *instance) const override; Cell *cell(const Instance *instance) const override;
+2 -2
View File
@@ -275,13 +275,13 @@ ConcreteCell::setAttribute(const std::string &key,
attribute_map_.insert(key, value); attribute_map_.insert(key, value);
} }
std::optional<std::string> std::string
ConcreteCell::getAttribute(const std::string &key) const ConcreteCell::getAttribute(const std::string &key) const
{ {
if (attribute_map_.hasKey(key)) { if (attribute_map_.hasKey(key)) {
return attribute_map_.findKey(key); return attribute_map_.findKey(key);
} }
return {}; return "";
} }
ConcretePort * ConcretePort *
+4 -4
View File
@@ -606,7 +606,7 @@ ConcreteNetwork::filename(const Cell *cell)
return ccell->filename(); return ccell->filename();
} }
std::optional<std::string> std::string
ConcreteNetwork::getAttribute(const Cell *cell, ConcreteNetwork::getAttribute(const Cell *cell,
const std::string &key) const const std::string &key) const
{ {
@@ -938,7 +938,7 @@ ConcreteNetwork::id(const Instance *instance) const
return inst->id(); return inst->id();
} }
std::optional<std::string> std::string
ConcreteNetwork::getAttribute(const Instance *inst, ConcreteNetwork::getAttribute(const Instance *inst,
const std::string &key) const const std::string &key) const
{ {
@@ -1689,13 +1689,13 @@ ConcreteInstance::setAttribute(const std::string &key,
attribute_map_.insert(key, value); attribute_map_.insert(key, value);
} }
std::optional<std::string> std::string
ConcreteInstance::getAttribute(const std::string &key) const ConcreteInstance::getAttribute(const std::string &key) const
{ {
if (attribute_map_.hasKey(key)) { if (attribute_map_.hasKey(key)) {
return attribute_map_.findKey(key); return attribute_map_.findKey(key);
} }
return {}; return "";
} }
void void
+2 -2
View File
@@ -122,7 +122,7 @@ NetworkNameAdapter::id(const Cell *cell) const
return network_->id(cell); return network_->id(cell);
} }
std::optional<std::string> std::string
NetworkNameAdapter::getAttribute(const Cell *cell, NetworkNameAdapter::getAttribute(const Cell *cell,
const std::string &key) const const std::string &key) const
{ {
@@ -334,7 +334,7 @@ NetworkNameAdapter::cell(const Instance *instance) const
return network_->cell(instance); return network_->cell(instance);
} }
std::optional<std::string> std::string
NetworkNameAdapter::getAttribute(const Instance *inst, NetworkNameAdapter::getAttribute(const Instance *inst,
const std::string &key) const const std::string &key) const
{ {
+2 -16
View File
@@ -4186,14 +4186,7 @@ LibertyCell *liberty_cell() { return cmdNetwork()->libertyCell(self); }
bool is_leaf() { return cmdNetwork()->isLeaf(self); } bool is_leaf() { return cmdNetwork()->isLeaf(self); }
CellPortIterator * CellPortIterator *
port_iterator() { return cmdNetwork()->portIterator(self); } port_iterator() { return cmdNetwork()->portIterator(self); }
string get_attribute(const char *key) string get_attribute(const char *key) { return cmdNetwork()->getAttribute(self, key); }
{
std::optional<std::string> result = cmdNetwork()->getAttribute(self, key);
if (result) {
return result.value();
}
return "";
}
Port * Port *
find_port(const char *name) find_port(const char *name)
@@ -4418,14 +4411,7 @@ find_pin(const char *name)
{ {
return cmdLinkedNetwork()->findPin(self, name); return cmdLinkedNetwork()->findPin(self, name);
} }
string get_attribute(const char *key) string get_attribute(const char *key) { return cmdNetwork()->getAttribute(self, key); }
{
std::optional<std::string> result = cmdNetwork()->getAttribute(self, key);
if (result) {
return result.value();
}
return "";
}
} // Instance methods } // Instance methods
%extend InstanceChildIterator { %extend InstanceChildIterator {