class AutoC::List::Range

Public Instance Methods

render_interface(stream) click to toggle source
# File lib/autoc/list.rb, line 387
def render_interface(stream)
  if public?
    render_type_description(stream)
    stream << %{
      /**
        #{ingroup}
        @brief Opaque structure holding state of the list's range
        @since 2.0
      */
    }
  else
    stream << PRIVATE
  end
  stream << %{
    typedef struct {
      #{iterable._node_p} front; /**< @private */
    } #{signature};
  }
end

Private Instance Methods

configure() click to toggle source
Calls superclass method
# File lib/autoc/list.rb, line 409
def configure
  super
  custom_create.configure do
    inline_code %{
      assert(range);
      assert(iterable);
      range->front = iterable->front;
    }
  end
  empty.configure do
    inline_code %{
      assert(range);
      return range->front == NULL;
    }
  end
  pop_front.configure do
    dependencies << empty
    inline_code %{
      assert(range);
      assert(!#{empty.(range)});
      range->front = range->front->next;
    }
  end
  view_front.configure do
    dependencies << empty
    inline_code %{
      assert(range);
      assert(!#{empty.(range)});
      return &range->front->element;
    }
  end
end