diff options
| author | jussi | 2024-05-22 00:11:40 +0300 |
|---|---|---|
| committer | jussi | 2024-05-22 00:11:40 +0300 |
| commit | cb1bc03681dff958da6ff851cfe32dfdd83f6f8d (patch) | |
| tree | 59ba256ce41cec8ac7e0d91b68baf222a9ff596a /examples/resources/lib/matrix.lua | |
| parent | c95c797da61b4b2829d542f6d7c164a88951cad4 (diff) | |
| download | reilua-enhanced-cb1bc03681dff958da6ff851cfe32dfdd83f6f8d.tar.gz reilua-enhanced-cb1bc03681dff958da6ff851cfe32dfdd83f6f8d.tar.bz2 reilua-enhanced-cb1bc03681dff958da6ff851cfe32dfdd83f6f8d.zip | |
Object lib serialization.
Diffstat (limited to 'examples/resources/lib/matrix.lua')
| -rw-r--r-- | examples/resources/lib/matrix.lua | 26 |
1 files changed, 24 insertions, 2 deletions
diff --git a/examples/resources/lib/matrix.lua b/examples/resources/lib/matrix.lua index 1dc128f..e94cb10 100644 --- a/examples/resources/lib/matrix.lua +++ b/examples/resources/lib/matrix.lua @@ -20,7 +20,7 @@ local function copyMatrix( orig ) end local Matrix = {} -Matrix.meta = { +local metatable = { __index = Matrix, __tostring = function( m ) return "{\n" @@ -45,7 +45,7 @@ Matrix.meta = { } function Matrix:new( m ) - local object = setmetatable( {}, Matrix.meta ) + local object = setmetatable( {}, metatable ) object.m = copyMatrix( m ) @@ -56,6 +56,28 @@ function Matrix:set( m ) self.m = copyMatrix( m ) end +function Matrix:serialize() + local str = { "Matrix:new({" } + + for i, row in ipairs( self.m ) do + table.insert( str, "{" ) + + for c, v in ipairs( row ) do + table.insert( str, v ) + if c < 4 then + table.insert( str, "," ) + end + end + table.insert( str, "}" ) + if i < 4 then + table.insert( str, "," ) + end + end + table.insert( str, "})" ) + + return table.concat( str ) +end + function Matrix:clone() return Matrix:new( self.m ) end |
