You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There are a variety of reasons why one might want to freeze a value yourself. Here's one example - defining a foo and a foo_set rule, you can't have a mutable type in your foo rule and be able to use a foo as a foo_set.
I was reading the documentation, and it says "Two mutable data structures are available: lists and dicts.". This is why I only proposed to freeze those two types.
I hadn't really considered a deep freeze. If it's a deep freeze I guess freezing arbitrary types would be useful, since you could freeze struct(a={}), for example. It's probably a question of what's easiest to implement - a shallow freeze would probably be sufficient, but if a deep freeze is easier there's certainly no harm in doing so.
I think if it is a shallow freeze, a method is probably better than a function to ensure that it's only ever used on the correct type, but for a deep freeze, a function freeze would be the way to go.
There are a variety of reasons why one might want to freeze a value yourself. Here's one example - defining a
foo
and afoo_set
rule, you can't have a mutable type in your foo rule and be able to use afoo
as afoo_set
.The following code is not considered valid:
However, the following code is considered valid:
I propose adding a
dict.freeze()
andlist.freeze()
method (or.frozen()
, if doing so creates a frozen copy instead of mutating the original value).The text was updated successfully, but these errors were encountered: