Skip to content

Commit 508f421

Browse files
authored
Merge pull request #260 from Lightbug-HQ/chore/update-25-4
Update to 25.4
2 parents b1d889f + 6bf0a86 commit 508f421

22 files changed

+218
-223
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,7 @@ Once you have a Mojo project set up locally,
6060

6161
```toml
6262
[dependencies]
63-
lightbug_http = ">=25.3.0"
63+
lightbug_http = ">=25.4.0"
6464
```
6565

6666
3. Run `magic install` at the root of your project, where `mojoproject.toml` is located

lightbug_http/_libc.mojo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ alias in_port_t = c_ushort
9393
# Address Family Constants
9494
@value
9595
@register_passable("trivial")
96-
struct AddressFamily:
96+
struct AddressFamily(EqualityComparable & Copyable & Movable):
9797
var value: Int32
9898
alias AF_UNSPEC = Self(0)
9999
"""unspecified"""

lightbug_http/_logger.mojo

Lines changed: 10 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -63,50 +63,45 @@ struct Logger[level: Int]:
6363
var msg = String.write("\033[36mINFO\033[0m - ")
6464

6565
@parameter
66-
fn write_message[T: Writable](message: T):
67-
msg.write(message, " ")
66+
for i in range(messages.__len__()):
67+
msg.write(messages[i], " ")
6868

69-
messages.each[write_message]()
7069
self._log_message[LogLevel.INFO](msg)
7170

7271
fn warn[*Ts: Writable](self, *messages: *Ts):
7372
var msg = String.write("\033[33mWARN\033[0m - ")
7473

7574
@parameter
76-
fn write_message[T: Writable](message: T):
77-
msg.write(message, " ")
75+
for i in range(messages.__len__()):
76+
msg.write(messages[i], " ")
7877

79-
messages.each[write_message]()
8078
self._log_message[LogLevel.WARN](msg)
8179

8280
fn error[*Ts: Writable](self, *messages: *Ts):
8381
var msg = String.write("\033[31mERROR\033[0m - ")
8482

8583
@parameter
86-
fn write_message[T: Writable](message: T):
87-
msg.write(message, " ")
84+
for i in range(messages.__len__()):
85+
msg.write(messages[i], " ")
8886

89-
messages.each[write_message]()
9087
self._log_message[LogLevel.ERROR](msg)
9188

9289
fn debug[*Ts: Writable](self, *messages: *Ts):
9390
var msg = String.write("\033[34mDEBUG\033[0m - ")
9491

9592
@parameter
96-
fn write_message[T: Writable](message: T):
97-
msg.write(message, " ")
93+
for i in range(messages.__len__()):
94+
msg.write(messages[i], " ")
9895

99-
messages.each[write_message]()
10096
self._log_message[LogLevel.DEBUG](msg)
10197

10298
fn fatal[*Ts: Writable](self, *messages: *Ts):
10399
var msg = String.write("\033[35mFATAL\033[0m - ")
104100

105101
@parameter
106-
fn write_message[T: Writable](message: T):
107-
msg.write(message, " ")
102+
for i in range(messages.__len__()):
103+
msg.write(messages[i], " ")
108104

109-
messages.each[write_message]()
110105
self._log_message[LogLevel.FATAL](msg)
111106

112107

lightbug_http/_owning_list.mojo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,7 +122,7 @@ struct OwningList[T: Movable](Movable, Sized, Boolable):
122122
123123
Parameters:
124124
U: The type of the elements in the list. Must implement the
125-
traits `EqualityComparable` and `CollectionElement`.
125+
traits `EqualityComparable`, `Copyable`, and `Movable`.
126126
127127
Args:
128128
value: The value to find.

lightbug_http/connection.mojo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ struct ListenConfig:
139139
return listener^
140140

141141

142-
struct TCPConnection:
142+
struct TCPConnection(Connection):
143143
var socket: Socket[TCPAddr]
144144

145145
fn __init__(out self, owned socket: Socket[TCPAddr]):

lightbug_http/cookie/cookie.mojo

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ from collections import Optional
22
from lightbug_http.header import HeaderKey
33

44

5-
struct Cookie(CollectionElement):
5+
struct Cookie(Copyable, Movable):
66
alias EXPIRES = "Expires"
77
alias MAX_AGE = "Max-Age"
88
alias DOMAIN = "Domain"
@@ -47,15 +47,15 @@ struct Cookie(CollectionElement):
4747
elif part == Cookie.HTTP_ONLY:
4848
cookie.http_only = True
4949
elif part.startswith(Cookie.SAME_SITE):
50-
cookie.same_site = SameSite.from_string(part.removeprefix(Cookie.SAME_SITE + Cookie.EQUAL))
50+
cookie.same_site = SameSite.from_string(String(part.removeprefix(Cookie.SAME_SITE + Cookie.EQUAL)))
5151
elif part.startswith(Cookie.DOMAIN):
52-
cookie.domain = part.removeprefix(Cookie.DOMAIN + Cookie.EQUAL)
52+
cookie.domain = String(part.removeprefix(Cookie.DOMAIN + Cookie.EQUAL))
5353
elif part.startswith(Cookie.PATH):
54-
cookie.path = part.removeprefix(Cookie.PATH + Cookie.EQUAL)
54+
cookie.path = String(part.removeprefix(Cookie.PATH + Cookie.EQUAL))
5555
elif part.startswith(Cookie.MAX_AGE):
56-
cookie.max_age = Duration.from_string(part.removeprefix(Cookie.MAX_AGE + Cookie.EQUAL))
56+
cookie.max_age = Duration.from_string(String(part.removeprefix(Cookie.MAX_AGE + Cookie.EQUAL)))
5757
elif part.startswith(Cookie.EXPIRES):
58-
var expires = Expiration.from_string(part.removeprefix(Cookie.EXPIRES + Cookie.EQUAL))
58+
var expires = Expiration.from_string(String(part.removeprefix(Cookie.EXPIRES + Cookie.EQUAL)))
5959
if expires:
6060
cookie.expires = expires.value()
6161

lightbug_http/cookie/expiration.mojo

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,13 @@
1+
from collections import Optional
12
from lightbug_http.external.small_time import SmallTime
3+
from lightbug_http.strings import to_string
24

35
alias HTTP_DATE_FORMAT = "ddd, DD MMM YYYY HH:mm:ss ZZZ"
46
alias TZ_GMT = TimeZone(0, "GMT")
57

68

79
@value
8-
struct Expiration(CollectionElement):
10+
struct Expiration(Copyable, Movable):
911
var variant: UInt8
1012
var datetime: Optional[SmallTime]
1113

lightbug_http/cookie/request_cookie_jar.mojo

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ struct RequestCookieJar(Writable, Stringable):
1616
fn __init__(out self, *cookies: Cookie):
1717
self._inner = Dict[String, String]()
1818
for cookie in cookies:
19-
self._inner[cookie[].name] = cookie[].value
19+
self._inner[cookie.name] = cookie.value
2020

2121
fn parse_cookies(mut self, headers: Headers) raises:
2222
var cookie_header = headers.get(HeaderKey.COOKIE)
@@ -27,9 +27,9 @@ struct RequestCookieJar(Writable, Stringable):
2727

2828
for chunk in cookie_strings:
2929
var key = String("")
30-
var value = chunk[]
31-
if "=" in chunk[]:
32-
var key_value = chunk[].split("=")
30+
var value = chunk
31+
if "=" in chunk:
32+
var key_value = chunk.split("=")
3333
key = key_value[0]
3434
value = key_value[1]
3535

@@ -64,7 +64,7 @@ struct RequestCookieJar(Writable, Stringable):
6464

6565
var header_value = List[String]()
6666
for cookie in self._inner.items():
67-
header_value.append(cookie[].key + equal + cookie[].value)
67+
header_value.append(cookie.key + equal + cookie.value)
6868
return Header(HeaderKey.COOKIE, StaticString("; ").join(header_value))
6969

7070
fn encode_to(mut self, mut writer: ByteWriter):

lightbug_http/cookie/response_cookie_jar.mojo

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,7 @@ struct ResponseCookieKey(KeyElement):
4141

4242

4343
@value
44-
struct ResponseCookieJar(Writable, Stringable):
44+
struct ResponseCookieJar(Writable, Stringable, Copyable, Movable, Sized):
4545
var _inner: Dict[ResponseCookieKey, Cookie]
4646

4747
fn __init__(out self):
@@ -50,7 +50,7 @@ struct ResponseCookieJar(Writable, Stringable):
5050
fn __init__(out self, *cookies: Cookie):
5151
self._inner = Dict[ResponseCookieKey, Cookie]()
5252
for cookie in cookies:
53-
self.set_cookie(cookie[])
53+
self.set_cookie(cookie)
5454

5555
@always_inline
5656
fn __setitem__(mut self, key: ResponseCookieKey, value: Cookie):
@@ -90,9 +90,9 @@ struct ResponseCookieJar(Writable, Stringable):
9090
fn from_headers(mut self, headers: List[String]) raises:
9191
for header in headers:
9292
try:
93-
self.set_cookie(Cookie.from_set_header(header[]))
93+
self.set_cookie(Cookie.from_set_header(header))
9494
except:
95-
raise Error("Failed to parse cookie header string " + header[])
95+
raise Error("Failed to parse cookie header string " + header)
9696

9797
# fn encode_to(mut self, mut writer: ByteWriter):
9898
# for cookie in self._inner.values():
@@ -101,5 +101,5 @@ struct ResponseCookieJar(Writable, Stringable):
101101

102102
fn write_to[T: Writer](self, mut writer: T):
103103
for cookie in self._inner.values():
104-
var v = cookie[].build_header_value()
104+
var v = cookie.build_header_value()
105105
write_header(writer, HeaderKey.SET_COOKIE, v)

lightbug_http/cookie/same_site.mojo

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
@value
2-
struct SameSite:
2+
struct SameSite(Stringable):
33
var value: UInt8
44

55
alias none = SameSite(0)

0 commit comments

Comments
 (0)