aboutsummaryrefslogtreecommitdiff
path: root/src/ltn12.lua
diff options
context:
space:
mode:
authorDiego Nehab <diego@tecgraf.puc-rio.br>2004-06-16 04:28:21 +0000
committerDiego Nehab <diego@tecgraf.puc-rio.br>2004-06-16 04:28:21 +0000
commit0a4c1534f39511894728da193ab8225ad6022de9 (patch)
tree683b711accf64eca486b138cbc034c609f93a53a /src/ltn12.lua
parent8e80e38f2c3121242b3b2f7a45a960c9af4d1a68 (diff)
downloadluasocket-0a4c1534f39511894728da193ab8225ad6022de9.tar.gz
luasocket-0a4c1534f39511894728da193ab8225ad6022de9.tar.bz2
luasocket-0a4c1534f39511894728da193ab8225ad6022de9.zip
Still work to do in the manual...
Diffstat (limited to 'src/ltn12.lua')
-rw-r--r--src/ltn12.lua8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/ltn12.lua b/src/ltn12.lua
index bb527bd..09771d4 100644
--- a/src/ltn12.lua
+++ b/src/ltn12.lua
@@ -23,6 +23,7 @@ BLOCKSIZE = 2048
23----------------------------------------------------------------------------- 23-----------------------------------------------------------------------------
24-- returns a high level filter that cycles a low-level filter 24-- returns a high level filter that cycles a low-level filter
25function filter.cycle(low, ctx, extra) 25function filter.cycle(low, ctx, extra)
26 assert(low)
26 return function(chunk) 27 return function(chunk)
27 local ret 28 local ret
28 ret, ctx = low(ctx, chunk, extra) 29 ret, ctx = low(ctx, chunk, extra)
@@ -32,6 +33,7 @@ end
32 33
33-- chains two filters together 34-- chains two filters together
34local function chain2(f1, f2) 35local function chain2(f1, f2)
36 assert(f1 and f2)
35 local co = coroutine.create(function(chunk) 37 local co = coroutine.create(function(chunk)
36 while true do 38 while true do
37 local filtered1 = f1(chunk) 39 local filtered1 = f1(chunk)
@@ -95,6 +97,7 @@ end
95 97
96-- turns a fancy source into a simple source 98-- turns a fancy source into a simple source
97function source.simplify(src) 99function source.simplify(src)
100 assert(src)
98 return function() 101 return function()
99 local chunk, err_or_new = src() 102 local chunk, err_or_new = src()
100 src = err_or_new or src 103 src = err_or_new or src
@@ -118,6 +121,7 @@ end
118 121
119-- creates rewindable source 122-- creates rewindable source
120function source.rewind(src) 123function source.rewind(src)
124 assert(src)
121 local t = {} 125 local t = {}
122 return function(chunk) 126 return function(chunk)
123 if not chunk then 127 if not chunk then
@@ -132,6 +136,7 @@ end
132 136
133-- chains a source with a filter 137-- chains a source with a filter
134function source.chain(src, f) 138function source.chain(src, f)
139 assert(src and f)
135 local co = coroutine.create(function() 140 local co = coroutine.create(function()
136 while true do 141 while true do
137 local chunk, err = src() 142 local chunk, err = src()
@@ -186,6 +191,7 @@ end
186 191
187-- turns a fancy sink into a simple sink 192-- turns a fancy sink into a simple sink
188function sink.simplify(snk) 193function sink.simplify(snk)
194 assert(snk)
189 return function(chunk, err) 195 return function(chunk, err)
190 local ret, err_or_new = snk(chunk, err) 196 local ret, err_or_new = snk(chunk, err)
191 if not ret then return nil, err_or_new end 197 if not ret then return nil, err_or_new end
@@ -224,6 +230,7 @@ end
224 230
225-- chains a sink with a filter 231-- chains a sink with a filter
226function sink.chain(f, snk) 232function sink.chain(f, snk)
233 assert(f and snk)
227 return function(chunk, err) 234 return function(chunk, err)
228 local filtered = f(chunk) 235 local filtered = f(chunk)
229 local done = chunk and "" 236 local done = chunk and ""
@@ -248,6 +255,7 @@ end
248 255
249-- pumps all data from a source to a sink, using a step function 256-- pumps all data from a source to a sink, using a step function
250function pump.all(src, snk, step) 257function pump.all(src, snk, step)
258 assert(src and snk)
251 step = step or pump.step 259 step = step or pump.step
252 while true do 260 while true do
253 local ret, err = step(src, snk) 261 local ret, err = step(src, snk)