"examples/community/test_tensorrt_controlnet.py" did not exist on "0e82fb19e16bd2d45ade31c9a4b871de56e7e80a"
Commit a308b73e authored by Jesse Beder's avatar Jesse Beder
Browse files

Set the map iterator to filter over undefined items

parent c2a8a2c1
...@@ -23,7 +23,7 @@ namespace YAML ...@@ -23,7 +23,7 @@ namespace YAML
iterator_base<V>, iterator_base<V>,
node_iterator, node_iterator,
V, V,
std::bidirectional_iterator_tag> std::forward_iterator_tag>
{ {
private: private:
template<typename> friend class iterator_base; template<typename> friend class iterator_base;
...@@ -42,7 +42,6 @@ namespace YAML ...@@ -42,7 +42,6 @@ namespace YAML
friend class boost::iterator_core_access; friend class boost::iterator_core_access;
void increment() { this->base_reference() = boost::next(this->base()); } void increment() { this->base_reference() = boost::next(this->base()); }
void decrement() { this->base_reference() = boost::prior(this->base()); }
value_type dereference() const { value_type dereference() const {
const typename base_type::value_type& v = *this->base(); const typename base_type::value_type& v = *this->base();
......
...@@ -54,7 +54,7 @@ namespace YAML ...@@ -54,7 +54,7 @@ namespace YAML
class node_iterator_base: public boost::iterator_facade< class node_iterator_base: public boost::iterator_facade<
node_iterator_base<V>, node_iterator_base<V>,
node_iterator_value<V>, node_iterator_value<V>,
std::bidirectional_iterator_tag, std::forward_iterator_tag,
node_iterator_value<V> > node_iterator_value<V> >
{ {
private: private:
...@@ -67,11 +67,13 @@ namespace YAML ...@@ -67,11 +67,13 @@ namespace YAML
node_iterator_base(): m_type(iterator_type::None) {} node_iterator_base(): m_type(iterator_type::None) {}
explicit node_iterator_base(SeqIter seqIt): m_type(iterator_type::Sequence), m_seqIt(seqIt) {} explicit node_iterator_base(SeqIter seqIt): m_type(iterator_type::Sequence), m_seqIt(seqIt) {}
explicit node_iterator_base(MapIter mapIt): m_type(iterator_type::Map), m_mapIt(mapIt) {} explicit node_iterator_base(MapIter mapIt, MapIter mapEnd): m_type(iterator_type::Map), m_mapIt(mapIt), m_mapEnd(mapEnd) {
m_mapIt = increment_until_defined(m_mapIt);
}
template<typename W> template<typename W>
node_iterator_base(const node_iterator_base<W>& rhs, typename boost::enable_if<boost::is_convertible<W*, V*>, enabler>::type = enabler()) node_iterator_base(const node_iterator_base<W>& rhs, typename boost::enable_if<boost::is_convertible<W*, V*>, enabler>::type = enabler())
: m_type(rhs.m_type), m_seqIt(rhs.m_seqIt), m_mapIt(rhs.m_mapIt) {} : m_type(rhs.m_type), m_seqIt(rhs.m_seqIt), m_mapIt(rhs.m_mapIt), m_mapEnd(rhs.m_mapEnd) {}
private: private:
friend class boost::iterator_core_access; friend class boost::iterator_core_access;
...@@ -93,19 +95,16 @@ namespace YAML ...@@ -93,19 +95,16 @@ namespace YAML
void increment() { void increment() {
switch(m_type) { switch(m_type) {
case iterator_type::None: break; case iterator_type::None: break;
case iterator_type::Sequence: ++m_seqIt; break; case iterator_type::Sequence:
case iterator_type::Map: ++m_mapIt; break; ++m_seqIt;
} break;
} case iterator_type::Map:
++m_mapIt;
void decrement() { m_mapIt = increment_until_defined(m_mapIt);
switch(m_type) { break;
case iterator_type::None: break;
case iterator_type::Sequence: --m_seqIt; break;
case iterator_type::Map: --m_mapIt; break;
} }
} }
value_type dereference() const { value_type dereference() const {
switch(m_type) { switch(m_type) {
case iterator_type::None: return value_type(); case iterator_type::None: return value_type();
...@@ -115,11 +114,21 @@ namespace YAML ...@@ -115,11 +114,21 @@ namespace YAML
return value_type(); return value_type();
} }
MapIter increment_until_defined(MapIter it) {
while(it != m_mapEnd && !is_defined(it))
++it;
return it;
}
bool is_defined(MapIter it) const {
return it->first->is_defined() && it->second->is_defined();
}
private: private:
typename iterator_type::value m_type; typename iterator_type::value m_type;
SeqIter m_seqIt; SeqIter m_seqIt;
MapIter m_mapIt; MapIter m_mapIt, m_mapEnd;
}; };
typedef node_iterator_base<node> node_iterator; typedef node_iterator_base<node> node_iterator;
......
...@@ -106,7 +106,7 @@ namespace YAML ...@@ -106,7 +106,7 @@ namespace YAML
switch(m_type) { switch(m_type) {
case NodeType::Sequence: return const_node_iterator(m_sequence.begin()); case NodeType::Sequence: return const_node_iterator(m_sequence.begin());
case NodeType::Map: return const_node_iterator(m_map.begin()); case NodeType::Map: return const_node_iterator(m_map.begin(), m_map.end());
default: return const_node_iterator(); default: return const_node_iterator();
} }
} }
...@@ -118,7 +118,7 @@ namespace YAML ...@@ -118,7 +118,7 @@ namespace YAML
switch(m_type) { switch(m_type) {
case NodeType::Sequence: return node_iterator(m_sequence.begin()); case NodeType::Sequence: return node_iterator(m_sequence.begin());
case NodeType::Map: return node_iterator(m_map.begin()); case NodeType::Map: return node_iterator(m_map.begin(), m_map.end());
default: return node_iterator(); default: return node_iterator();
} }
} }
...@@ -130,7 +130,7 @@ namespace YAML ...@@ -130,7 +130,7 @@ namespace YAML
switch(m_type) { switch(m_type) {
case NodeType::Sequence: return const_node_iterator(m_sequence.end()); case NodeType::Sequence: return const_node_iterator(m_sequence.end());
case NodeType::Map: return const_node_iterator(m_map.end()); case NodeType::Map: return const_node_iterator(m_map.end(), m_map.end());
default: return const_node_iterator(); default: return const_node_iterator();
} }
} }
...@@ -142,7 +142,7 @@ namespace YAML ...@@ -142,7 +142,7 @@ namespace YAML
switch(m_type) { switch(m_type) {
case NodeType::Sequence: return node_iterator(m_sequence.end()); case NodeType::Sequence: return node_iterator(m_sequence.end());
case NodeType::Map: return node_iterator(m_map.end()); case NodeType::Map: return node_iterator(m_map.end(), m_map.end());
default: return node_iterator(); default: return node_iterator();
} }
} }
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment