Skip to content

Commit 75ed764

Browse files
committed
use integers instead of 1 byte strings
1 parent 9303f84 commit 75ed764

File tree

1 file changed

+13
-17
lines changed

1 file changed

+13
-17
lines changed

lib/elixir/lib/calendar/iso.ex

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -1249,7 +1249,7 @@ defmodule Calendar.ISO do
12491249
defp time_to_iodata_guarded(hour, minute, second, {microsecond, precision}, format) do
12501250
[
12511251
time_to_iodata_format(hour, minute, second, format),
1252-
".",
1252+
?.,
12531253
microseconds_to_iodata(microsecond, precision)
12541254
]
12551255
end
@@ -1269,7 +1269,7 @@ defmodule Calendar.ISO do
12691269
defp div_factor(5), do: 10
12701270

12711271
defp time_to_iodata_format(hour, minute, second, :extended) do
1272-
[zero_pad(hour, 2), ":", zero_pad(minute, 2), ":", zero_pad(second, 2)]
1272+
[zero_pad(hour, 2), ?:, zero_pad(minute, 2), ?:, zero_pad(second, 2)]
12731273
end
12741274

12751275
defp time_to_iodata_format(hour, minute, second, :basic) do
@@ -1313,15 +1313,11 @@ defmodule Calendar.ISO do
13131313
end
13141314

13151315
defp date_to_iodata_guarded(year, month, day, :extended) do
1316-
[zero_pad(year, 4), "-", zero_pad(month, 2), "-", zero_pad(day, 2)]
1316+
[zero_pad(year, 4), ?-, zero_pad(month, 2), ?-, zero_pad(day, 2)]
13171317
end
13181318

13191319
defp date_to_iodata_guarded(year, month, day, :basic) do
1320-
[
1321-
zero_pad(year, 4),
1322-
zero_pad(month, 2),
1323-
zero_pad(day, 2)
1324-
]
1320+
[zero_pad(year, 4), zero_pad(month, 2), zero_pad(day, 2)]
13251321
end
13261322

13271323
@doc """
@@ -1389,7 +1385,7 @@ defmodule Calendar.ISO do
13891385
) do
13901386
[
13911387
date_to_iodata(year, month, day, format),
1392-
" ",
1388+
?\s,
13931389
time_to_iodata(hour, minute, second, microsecond, format)
13941390
]
13951391
end
@@ -1493,7 +1489,7 @@ defmodule Calendar.ISO do
14931489
is_std_offset(std_offset) do
14941490
[
14951491
date_to_iodata(year, month, day, format),
1496-
" ",
1492+
?\s,
14971493
time_to_iodata(hour, minute, second, microsecond, format),
14981494
offset_to_iodata(utc_offset, std_offset, time_zone, format),
14991495
zone_to_iodata(utc_offset, std_offset, zone_abbr, time_zone)
@@ -1508,7 +1504,7 @@ defmodule Calendar.ISO do
15081504
|> IO.iodata_to_binary()
15091505
end
15101506

1511-
def offset_to_iodata(0, 0, "Etc/UTC", _format), do: "Z"
1507+
def offset_to_iodata(0, 0, "Etc/UTC", _format), do: ?Z
15121508

15131509
def offset_to_iodata(utc, std, _zone, format) do
15141510
total = utc + std
@@ -1519,15 +1515,15 @@ defmodule Calendar.ISO do
15191515
end
15201516

15211517
defp format_offset(total, hour, minute, :extended) do
1522-
[sign(total), zero_pad(hour, 2), ":", zero_pad(minute, 2)]
1518+
[sign(total), zero_pad(hour, 2), ?:, zero_pad(minute, 2)]
15231519
end
15241520

15251521
defp format_offset(total, hour, minute, :basic) do
15261522
[sign(total), zero_pad(hour, 2), zero_pad(minute, 2)]
15271523
end
15281524

1529-
defp zone_to_iodata(_, _, _, "Etc/UTC"), do: ""
1530-
defp zone_to_iodata(_, _, abbr, zone), do: [" ", abbr, " ", zone]
1525+
defp zone_to_iodata(_, _, _, "Etc/UTC"), do: []
1526+
defp zone_to_iodata(_, _, abbr, zone), do: [?\s, abbr, ?\s, zone]
15311527

15321528
@doc """
15331529
Determines if the date given is valid according to the proleptic Gregorian calendar.
@@ -1588,8 +1584,8 @@ defmodule Calendar.ISO do
15881584
{0, 1}
15891585
end
15901586

1591-
defp sign(total) when total < 0, do: "-"
1592-
defp sign(_), do: "+"
1587+
defp sign(total) when total < 0, do: ?-
1588+
defp sign(_), do: ?+
15931589

15941590
defp zero_pad(val, count) when val >= 0 and count <= 6 do
15951591
num = Integer.to_string(val)
@@ -1605,7 +1601,7 @@ defmodule Calendar.ISO do
16051601
end
16061602

16071603
defp zero_pad(val, count) do
1608-
["-", zero_pad(-val, count)]
1604+
[?-, zero_pad(-val, count)]
16091605
end
16101606

16111607
@doc """

0 commit comments

Comments
 (0)