elua: wrap iteration functions in closures for extra encapsulation

This commit is contained in:
Daniel Kolesa 2014-04-14 10:00:48 +01:00 committed by Daniel Kolesa
parent 9bd9a455f9
commit 799a394285
3 changed files with 23 additions and 23 deletions

View File

@ -154,7 +154,7 @@ end
local Iterator = iterator.Iterator
M.Ls_Iterator = Iterator:clone {
local Ls_Iterator = Iterator:clone {
__ctor = function(self, selfmt, dir)
return Iterator.__ctor(self, selfmt, eina.eina_file_ls(dir))
end,
@ -168,7 +168,7 @@ M.Ls_Iterator = Iterator:clone {
end
}
M.ls = M.Ls_Iterator
M.ls = function(dir) return Ls_Iterator(dir) end
local file_type_map = {
[C.EINA_FILE_UNKNOWN] = "unknown",
@ -214,23 +214,23 @@ local direct_info_iterator_next = function(self)
return Direct_Info(path, ns, nl, tp), self:container_get()
end
M.Stat_Ls_Iterator = Iterator:clone {
local Stat_Ls_Iterator = Iterator:clone {
__ctor = function(self, selfmt, dir)
return Iterator.__ctor(self, selfmt, eina.eina_file_stat_ls(dir))
end,
next = direct_info_iterator_next
}
M.stat_ls = M.Stat_Ls_Iterator
M.stat_ls = function(dir) return Stat_Ls_Iterator(dir) end
M.Direct_Ls_Iterator = Iterator:clone {
local Direct_Ls_Iterator = Iterator:clone {
__ctor = function(self, selfmt, dir)
return Iterator.__ctor(self, selfmt, eina.eina_file_direct_ls(dir))
end,
next = direct_info_iterator_next
}
M.direct_ls = M.Direct_Ls_Iterator
M.direct_ls = function(dir) return Direct_Ls_Iterator(dir) end
M.path_sanitize = function(path)
local v = eina.eina_file_path_sanitize(path)
@ -258,7 +258,7 @@ M.copy = function(source, destination, flags, cb)
return v ~= 0
end
M.Xattr_Iterator = Iterator:clone {
local Xattr_Iterator = Iterator:clone {
__ctor = function(self, selfmt, file)
return Iterator.__ctor(self, selfmt, eina.eina_file_xattr_get(file))
end,
@ -269,7 +269,7 @@ M.Xattr_Iterator = Iterator:clone {
end
}
M.Xattr_Value_Iterator = Iterator:clone {
local Xattr_Value_Iterator = Iterator:clone {
__ctor = function(self, selfmt, file)
return Iterator.__ctor(self, selfmt,
eina.eina_file_xattr_value_get(file))
@ -291,7 +291,7 @@ M.populate = {
REMOVE = 5
}
M.Line_Iterator = Iterator:clone {
local Line_Iterator = Iterator:clone {
__ctor = function(self, selfmt, file)
return Iterator.__ctor(self, selfmt, eina.eina_file_map_lines(file))
end,
@ -346,8 +346,8 @@ M.File = ffi.metatype("Eina_File", {
return ffi.string(eina.eina_file_filename_get(self))
end,
xattr_get = M.Xattr_Iterator,
xattr_value_get = M.Xattr_Value_Iterator,
xattr_get = function(self) return Xattr_Iterator(self) end,
xattr_value_get = function(self) Xattr_Value_Iterator(self) end,
map_all = function(self, rule, raw)
local v = ffi.cast("char*", eina.eina_file_map_all(self, rule or 0))
@ -385,7 +385,7 @@ M.File = ffi.metatype("Eina_File", {
return eina.eina_file_map_faulted(self, map) ~= 0
end,
lines = M.Line_Iterator
lines = function(self) return Line_Iterator(self) end
}
})

View File

@ -64,7 +64,7 @@ local dgetmt = debug.getmetatable
local Iterator = iterator.Iterator
M.Tiler_Iterator = Iterator:clone {
local Tiler_Iterator = Iterator:clone {
__ctor = function(self, selfmt, tiler)
return Iterator.__ctor(self, selfmt,
eina.eina_tiler_iterator_new(tiler))
@ -77,7 +77,7 @@ M.Tiler_Iterator = Iterator:clone {
end
}
M.Tile_Grid_Slicer_Iterator = Iterator:clone {
local Tile_Grid_Slicer_Iterator = Iterator:clone {
__ctor = function(self, selfmt, x, y, w, h, tile_w, tile_h)
return Iterator.__ctor(self, selfmt,
eina.eina_tile_grid_slicer_iterator_new(x, y, w, h, tile_w, tile_h))
@ -128,11 +128,9 @@ M.Tiler = ffi.metatype("Eina_Tiler", {
clear = function(self) eina.eina_tiler_clear(self) end,
each = function(self)
iterator = function(self)
return M.Tiler_Iterator(self)
end,
Iterator = M.Tiler_Iterator
endd
}
})
@ -157,7 +155,9 @@ M.Tile_Grid_Slicer = ffi.metatype("Eina_Tile_Grid_Slicer", {
end
end,
Iterator = M.Tile_Grid_Slicer_Iterator
Iterator = function(x, y, w, h, tw, th)
return Tile_Grid_Slicer_Iterator(x, y, w, h, tw, th)
end
}
})

View File

@ -63,7 +63,7 @@ cutil.init_module(init, shutdown)
local Iterator = iterator.Iterator
M.Iterator = Iterator:clone {
local Name_Iterator = Iterator:clone {
__ctor = function(self, selfmt, file)
return Iterator.__ctor(self, selfmt, eina.eina_xattr_ls(file))
end,
@ -74,9 +74,9 @@ M.Iterator = Iterator:clone {
end
}
M.ls = M.Iterator
M.ls = function(file) return Name_Iterator(file) end
M.Value_Iterator = Iterator:clone {
local Value_Iterator = Iterator:clone {
__ctor = function(self, selfmt, file)
return Iterator.__ctor(self, selfmt, eina.eina_xattr_value_ls(file))
end,
@ -88,7 +88,7 @@ M.Value_Iterator = Iterator:clone {
end
}
M.value_ls = M.Value_Iterator
M.value_ls = function(file) return Value_Iterator(file) end
M.copy = function(src, dst)
return eina.eina_xatr_copy(src, dst) ~= 0