class StringSet
Represents a set of strings returned by libclang.
Definitions
attr_reader :size
Signature
-
attribute
r size
-
returns
Integer The number of strings in the set.
-
returns
def initialize(string_set)
Initialize a string set from a CXStringSet pointer.
Signature
-
parameter
string_setLib::CXStringSet | FFI::Pointer | Nil The CXStringSet to extract.
Implementation
def initialize(string_set)
@strings = []
@size = 0
return if string_set.nil?
string_set = Lib::CXStringSet.new(string_set) if string_set.is_a?(FFI::Pointer)
return if string_set.pointer.null?
begin
@size = string_set[:count]
strings = string_set[:strings]
return if strings.null?
@size.times do |i|
@strings << Lib.get_string(Lib::CXString.new(strings + (i * Lib::CXString.size)))
end
ensure
Lib.dispose_string_set(string_set)
end
end
def each(&block)
Iterate over each string.
Signature
-
yields
{|string| ...} Each string in the set.
-
parameter
stringString The extracted string.
-
parameter
-
returns
Enumerator If no block is given.
Implementation
def each(&block)
return to_enum(__method__) unless block_given?
@strings.each(&block)
self
end