316316---
317317--- @param request_specifier grpc_client.RequestSpecifier
318318--- @param data table The message to send. This should be in the structure of ` request_specifier.request` .
319- --- @param callback fun ( response : table ) A callback that will be run with every response
319+ --- @param callback fun ( response : table ): boolean ? A callback that will be run with every response
320320--- @param done ? fun () A callback that will be run when the stream closes.
321321---
322322--- @return string | nil error An error string , if any.
@@ -357,6 +357,7 @@ function Client:server_streaming_request(request_specifier, data, callback, done
357357
358358 self .loop :wrap (function ()
359359 for response_body in stream :each_chunk () do
360+ local stop = nil
360361 while response_body :len () > 0 do
361362 local msg_len = string.unpack (" >I4" , response_body :sub (2 , 5 ))
362363
@@ -371,10 +372,18 @@ function Client:server_streaming_request(request_specifier, data, callback, done
371372 end
372373
373374 local response = obj
374- callback (response )
375+ local should_stop = callback (response )
376+
377+ if should_stop then
378+ stop = true
379+ end
375380
376381 response_body = response_body :sub (msg_len + 6 )
377382 end
383+
384+ if stop == true then
385+ break
386+ end
378387 end
379388
380389 if done then
@@ -1138,6 +1147,17 @@ local snowcap_popup_v1_PopupEvent_Focus = {
11381147
11391148--- @class snowcap.decoration.v1.ViewResponse
11401149
1150+ --- @class snowcap.decoration.v1.GetDecorationEventsRequest
1151+ --- @field decoration_id integer ?
1152+
1153+ --- @class snowcap.decoration.v1.DecorationEvent
1154+ --- @field closing snowcap.decoration.v1.DecorationEvent.Closing ?
1155+
1156+ --- @class snowcap.decoration.v1.DecorationEvent.Closing
1157+
1158+ --- @class snowcap.decoration.v1.GetDecorationEventsResponse
1159+ --- @field decoration_events snowcap.decoration.v1.DecorationEvent[] ?
1160+
11411161--- @class snowcap.input.v0alpha1.Modifiers
11421162--- @field shift boolean ?
11431163--- @field ctrl boolean ?
@@ -1337,6 +1357,9 @@ local snowcap_popup_v1_PopupEvent_Focus = {
13371357
13381358--- @class snowcap.layer.v1.LayerEvent
13391359--- @field focus snowcap.layer.v1.LayerEvent.Focus ?
1360+ --- @field closing snowcap.layer.v1.LayerEvent.Closing ?
1361+
1362+ --- @class snowcap.layer.v1.LayerEvent.Closing
13401363
13411364--- @class snowcap.layer.v1.GetLayerEventsResponse
13421365--- @field layer_events snowcap.layer.v1.LayerEvent[] ?
@@ -1411,6 +1434,9 @@ local snowcap_popup_v1_PopupEvent_Focus = {
14111434
14121435--- @class snowcap.popup.v1.PopupEvent
14131436--- @field focus snowcap.popup.v1.PopupEvent.Focus ?
1437+ --- @field closing snowcap.popup.v1.PopupEvent.Closing ?
1438+
1439+ --- @class snowcap.popup.v1.PopupEvent.Closing
14141440
14151441--- @class snowcap.popup.v1.GetPopupEventsResponse
14161442--- @field popup_events snowcap.popup.v1.PopupEvent[] ?
@@ -1498,6 +1524,10 @@ snowcap.decoration.v1.UpdateDecorationRequest = {}
14981524snowcap .decoration .v1 .UpdateDecorationResponse = {}
14991525snowcap .decoration .v1 .ViewRequest = {}
15001526snowcap .decoration .v1 .ViewResponse = {}
1527+ snowcap .decoration .v1 .GetDecorationEventsRequest = {}
1528+ snowcap .decoration .v1 .DecorationEvent = {}
1529+ snowcap .decoration .v1 .DecorationEvent .Closing = {}
1530+ snowcap .decoration .v1 .GetDecorationEventsResponse = {}
15011531snowcap .input = {}
15021532snowcap .input .v0alpha1 = {}
15031533snowcap .input .v0alpha1 .Modifiers = {}
@@ -1542,6 +1572,7 @@ snowcap.layer.v1.ViewRequest = {}
15421572snowcap .layer .v1 .ViewResponse = {}
15431573snowcap .layer .v1 .GetLayerEventsRequest = {}
15441574snowcap .layer .v1 .LayerEvent = {}
1575+ snowcap .layer .v1 .LayerEvent .Closing = {}
15451576snowcap .layer .v1 .GetLayerEventsResponse = {}
15461577snowcap .popup = {}
15471578snowcap .popup .v1 = {}
@@ -1560,6 +1591,7 @@ snowcap.popup.v1.ViewRequest = {}
15601591snowcap .popup .v1 .ViewResponse = {}
15611592snowcap .popup .v1 .GetPopupEventsRequest = {}
15621593snowcap .popup .v1 .PopupEvent = {}
1594+ snowcap .popup .v1 .PopupEvent .Closing = {}
15631595snowcap .popup .v1 .GetPopupEventsResponse = {}
15641596snowcap .v0alpha1 = {}
15651597snowcap .v0alpha1 .Nothing = {}
@@ -1602,7 +1634,7 @@ snowcap.widget.v1.WidgetService.GetWidgetEvents.response = ".snowcap.widget.v1.G
16021634--- @nodiscard
16031635---
16041636--- @param data snowcap.widget.v1.GetWidgetEventsRequest
1605- --- @param callback fun ( response : snowcap.widget.v1.GetWidgetEventsResponse )
1637+ --- @param callback fun ( response : snowcap.widget.v1.GetWidgetEventsResponse ): boolean ?
16061638--- @param done ? fun ()
16071639---
16081640--- @return string | nil An error string , if any
@@ -1695,6 +1727,26 @@ snowcap.decoration.v1.DecorationService.RequestView.response = ".snowcap.decorat
16951727function Client :snowcap_decoration_v1_DecorationService_RequestView (data )
16961728 return self :unary_request (snowcap .decoration .v1 .DecorationService .RequestView , data )
16971729end
1730+ snowcap .decoration .v1 .DecorationService .GetDecorationEvents = {}
1731+ snowcap .decoration .v1 .DecorationService .GetDecorationEvents .service = " snowcap.decoration.v1.DecorationService"
1732+ snowcap .decoration .v1 .DecorationService .GetDecorationEvents .method = " GetDecorationEvents"
1733+ snowcap .decoration .v1 .DecorationService .GetDecorationEvents .request = " .snowcap.decoration.v1.GetDecorationEventsRequest"
1734+ snowcap .decoration .v1 .DecorationService .GetDecorationEvents .response = " .snowcap.decoration.v1.GetDecorationEventsResponse"
1735+
1736+ --- Performs a server-streaming request.
1737+ ---
1738+ --- `callback` will be called with every streamed response.
1739+ ---
1740+ --- @nodiscard
1741+ ---
1742+ --- @param data snowcap.decoration.v1.GetDecorationEventsRequest
1743+ --- @param callback fun ( response : snowcap.decoration.v1.GetDecorationEventsResponse ): boolean ?
1744+ --- @param done ? fun ()
1745+ ---
1746+ --- @return string | nil An error string , if any
1747+ function Client :snowcap_decoration_v1_DecorationService_GetDecorationEvents (data , callback , done )
1748+ return self :server_streaming_request (snowcap .decoration .v1 .DecorationService .GetDecorationEvents , data , callback , done )
1749+ end
16981750snowcap .input .v0alpha1 .InputService = {}
16991751snowcap .input .v0alpha1 .InputService .KeyboardKey = {}
17001752snowcap .input .v0alpha1 .InputService .KeyboardKey .service = " snowcap.input.v0alpha1.InputService"
@@ -1709,7 +1761,7 @@ snowcap.input.v0alpha1.InputService.KeyboardKey.response = ".snowcap.input.v0alp
17091761--- @nodiscard
17101762---
17111763--- @param data snowcap.input.v0alpha1.KeyboardKeyRequest
1712- --- @param callback fun ( response : snowcap.input.v0alpha1.KeyboardKeyResponse )
1764+ --- @param callback fun ( response : snowcap.input.v0alpha1.KeyboardKeyResponse ): boolean ?
17131765--- @param done ? fun ()
17141766---
17151767--- @return string | nil An error string , if any
@@ -1729,7 +1781,7 @@ snowcap.input.v0alpha1.InputService.PointerButton.response = ".snowcap.input.v0a
17291781--- @nodiscard
17301782---
17311783--- @param data snowcap.input.v0alpha1.PointerButtonRequest
1732- --- @param callback fun ( response : snowcap.input.v0alpha1.PointerButtonResponse )
1784+ --- @param callback fun ( response : snowcap.input.v0alpha1.PointerButtonResponse ): boolean ?
17331785--- @param done ? fun ()
17341786---
17351787--- @return string | nil An error string , if any
@@ -1750,7 +1802,7 @@ snowcap.input.v1.InputService.KeyboardKey.response = ".snowcap.input.v1.Keyboard
17501802--- @nodiscard
17511803---
17521804--- @param data snowcap.input.v1.KeyboardKeyRequest
1753- --- @param callback fun ( response : snowcap.input.v1.KeyboardKeyResponse )
1805+ --- @param callback fun ( response : snowcap.input.v1.KeyboardKeyResponse ): boolean ?
17541806--- @param done ? fun ()
17551807---
17561808--- @return string | nil An error string , if any
@@ -1770,7 +1822,7 @@ snowcap.input.v1.InputService.PointerButton.response = ".snowcap.input.v1.Pointe
17701822--- @nodiscard
17711823---
17721824--- @param data snowcap.input.v1.PointerButtonRequest
1773- --- @param callback fun ( response : snowcap.input.v1.PointerButtonResponse )
1825+ --- @param callback fun ( response : snowcap.input.v1.PointerButtonResponse ): boolean ?
17741826--- @param done ? fun ()
17751827---
17761828--- @return string | nil An error string , if any
@@ -1911,7 +1963,7 @@ snowcap.layer.v1.LayerService.GetLayerEvents.response = ".snowcap.layer.v1.GetLa
19111963--- @nodiscard
19121964---
19131965--- @param data snowcap.layer.v1.GetLayerEventsRequest
1914- --- @param callback fun ( response : snowcap.layer.v1.GetLayerEventsResponse )
1966+ --- @param callback fun ( response : snowcap.layer.v1.GetLayerEventsResponse ): boolean ?
19151967--- @param done ? fun ()
19161968---
19171969--- @return string | nil An error string , if any
@@ -2017,7 +2069,7 @@ snowcap.popup.v1.PopupService.GetPopupEvents.response = ".snowcap.popup.v1.GetPo
20172069--- @nodiscard
20182070---
20192071--- @param data snowcap.popup.v1.GetPopupEventsRequest
2020- --- @param callback fun ( response : snowcap.popup.v1.GetPopupEventsResponse )
2072+ --- @param callback fun ( response : snowcap.popup.v1.GetPopupEventsResponse ): boolean ?
20212073--- @param done ? fun ()
20222074---
20232075--- @return string | nil An error string , if any
0 commit comments