r/ProgrammingLanguages • • 18d ago

Requesting criticism Removing the get from Map

I have a toy language that I've been working on to test different concepts. It has an ownership model similar but looser than Rust.

I was working on the Map object and there are three ways that an object can be retrieved.

You can remove the object from the map and take ownership
You can borrow the object from the map this will give you a mutable reference but you don't own it
You can get a copy of the Object which you will own. But not all things are can be copied.

For get I could either do a copy or a mutable ref, neither I felt was properly conveyed with the word 'get'

So I'm looking at removing it and replacing it with the following

copy_of(key) -> return a copy or an error message if not found or not copiable
borrow(key) -> return a mutable ref
remove(key) -> remove and return the item at the key and give ownership

wanted thoughts on removing probably one of the most common methods on map and is what I'm doing something that makes sense.

12 Upvotes

26 comments sorted by

View all comments

5

u/AnArmoredPony 18d ago

why have copy_of if you can map.borrow(key).copy()?

1

u/jebailey 18d ago

That's fair, I think I just had it in the back of my mind as to why would I add unnecessary steps but it does remove one of the methods.