@@ -24,22 +24,23 @@ defmodule BACnet.Protocol.DailySchedule do
2424 @ spec encode ( t ( ) , Keyword . t ( ) ) ::
2525 { :ok , ApplicationTags . encoding_list ( ) } | { :error , term ( ) }
2626 def encode ( % __MODULE__ { } = schedule , opts \\ [ ] ) do
27- with { :ok , schedules } <-
28- Enum . reduce_while ( schedule . schedule , { :ok , [ ] } , fn
29- tv , { :ok , acc } ->
30- case TimeValue . encode ( tv , opts ) do
31- { :ok , encoded } -> { :cont , { :ok , [ encoded | acc ] } }
32- { :error , _err } = err -> { :halt , err }
33- end
34- end ) do
35- day_schedule =
36- schedules
37- |> Enum . reverse ( )
38- |> List . flatten ( )
27+ case Enum . reduce_while ( schedule . schedule , { :ok , [ ] } , fn
28+ tv , { :ok , acc } ->
29+ case TimeValue . encode ( tv , opts ) do
30+ { :ok , encoded } -> { :cont , { :ok , [ encoded | acc ] } }
31+ { :error , _err } = err -> { :halt , err }
32+ end
33+ end ) do
34+ { :ok , schedules } ->
35+ day_schedule =
36+ schedules
37+ |> Enum . reverse ( )
38+ |> List . flatten ( )
3939
40- { :ok , [ { :constructed , { 0 , day_schedule , 0 } } ] }
41- else
42- { :error , _err } = err -> err
40+ { :ok , [ { :constructed , { 0 , day_schedule , 0 } } ] }
41+
42+ { :error , _err } = err ->
43+ err
4344 end
4445 end
4546
@@ -52,24 +53,25 @@ defmodule BACnet.Protocol.DailySchedule do
5253 def parse ( tags ) when is_list ( tags ) do
5354 case tags do
5455 [ { :constructed , { 0 , tags , _len } } | rest ] ->
55- with { :ok , schedules } when is_list ( schedules ) <-
56- Enum . reduce_while ( 1 .. 100_000 // 1 , { :ok , { [ ] , tags } } , fn
57- _ind , { :ok , { acc , [ ] } } ->
58- { :halt , { :ok , acc } }
56+ case Enum . reduce_while ( 1 .. 100_000 // 1 , { :ok , { [ ] , tags } } , fn
57+ _ind , { :ok , { acc , [ ] } } ->
58+ { :halt , { :ok , acc } }
59+
60+ _ind , { :ok , { acc , tags } } ->
61+ case TimeValue . parse ( tags ) do
62+ { :ok , { tv , rest } } -> { :cont , { :ok , { [ tv | acc ] , rest } } }
63+ { :error , _err } = err -> { :halt , err }
64+ end
65+ end ) do
66+ { :ok , schedules } when is_list ( schedules ) ->
67+ schedule = % __MODULE__ {
68+ schedule: Enum . reverse ( schedules )
69+ }
5970
60- _ind , { :ok , { acc , tags } } ->
61- case TimeValue . parse ( tags ) do
62- { :ok , { tv , rest } } -> { :cont , { :ok , { [ tv | acc ] , rest } } }
63- { :error , _err } = err -> { :halt , err }
64- end
65- end ) do
66- schedule = % __MODULE__ {
67- schedule: Enum . reverse ( schedules )
68- }
71+ { :ok , { schedule , rest } }
6972
70- { :ok , { schedule , rest } }
71- else
72- { :error , _err } = err -> err
73+ { :error , _err } = err ->
74+ err
7375 end
7476
7577 _term ->
0 commit comments