Skip to content

Commit e75181b

Browse files
committed
Switched to local functions
1 parent f21fdab commit e75181b

File tree

1 file changed

+33
-33
lines changed

1 file changed

+33
-33
lines changed

src/pgvector.lua

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -34,28 +34,14 @@ end
3434

3535
-- halfvec
3636

37-
local halfvec_mt = {
38-
pgmoon_serialize = function(v)
39-
return 0, halfvec_serialize(v)
40-
end
41-
}
42-
43-
function pgvector.halfvec(v)
44-
local vec = {}
45-
for _, x in ipairs(v) do
46-
table.insert(vec, x)
47-
end
48-
return setmetatable(vec, halfvec_mt)
49-
end
50-
51-
function halfvec_serialize(v)
37+
local function halfvec_serialize(v)
5238
for _, v in ipairs(v) do
5339
assert(type(v) == "number")
5440
end
5541
return "[" .. table.concat(v, ",") .. "]"
5642
end
5743

58-
function halfvec_deserialize(v)
44+
local function halfvec_deserialize(v)
5945
local vec = {}
6046
for x in string.gmatch(string.sub(v, 2, -2), "[^,]+") do
6147
table.insert(vec, tonumber(x))
@@ -64,37 +50,31 @@ function halfvec_deserialize(v)
6450
return setmetatable(vec, halfvec_mt)
6551
end
6652

67-
-- sparsevec
68-
69-
local sparsevec_mt = {
53+
local halfvec_mt = {
7054
pgmoon_serialize = function(v)
71-
return 0, sparsevec_serialize(v)
55+
return 0, halfvec_serialize(v)
7256
end
7357
}
7458

75-
function pgvector.sparsevec(elements, dim)
76-
for k, v in pairs(elements) do
77-
assert(type(k) == "number")
78-
assert(type(v) == "number")
59+
function pgvector.halfvec(v)
60+
local vec = {}
61+
for _, x in ipairs(v) do
62+
table.insert(vec, x)
7963
end
80-
assert(type(dim) == "number")
81-
82-
local vec = {
83-
elements = elements,
84-
dim = dim
85-
}
86-
return setmetatable(vec, sparsevec_mt)
64+
return setmetatable(vec, halfvec_mt)
8765
end
8866

89-
function sparsevec_serialize(vec)
67+
-- sparsevec
68+
69+
local function sparsevec_serialize(vec)
9070
local elements = {}
9171
for i, v in pairs(vec["elements"]) do
9272
table.insert(elements, tonumber(i) .. ":" .. tonumber(v))
9373
end
9474
return "{" .. table.concat(elements, ",") .. "}/" .. tonumber(vec["dim"])
9575
end
9676

97-
function sparsevec_deserialize(v)
77+
local function sparsevec_deserialize(v)
9878
local m = string.gmatch(v, "[^/]+")
9979
local elements = {}
10080
for e in string.gmatch(string.sub(m(), 2, -2), "[^,]+") do
@@ -110,6 +90,26 @@ function sparsevec_deserialize(v)
11090
return setmetatable(vec, sparsevec_mt)
11191
end
11292

93+
local sparsevec_mt = {
94+
pgmoon_serialize = function(v)
95+
return 0, sparsevec_serialize(v)
96+
end
97+
}
98+
99+
function pgvector.sparsevec(elements, dim)
100+
for k, v in pairs(elements) do
101+
assert(type(k) == "number")
102+
assert(type(v) == "number")
103+
end
104+
assert(type(dim) == "number")
105+
106+
local vec = {
107+
elements = elements,
108+
dim = dim
109+
}
110+
return setmetatable(vec, sparsevec_mt)
111+
end
112+
113113
-- register
114114

115115
function pgvector.setup_vector(pg)

0 commit comments

Comments
 (0)