For what it's worth, I'm not sure implementing a linked list in Rust is the best way to start learning the language. There is a good chance you will have to use unsafe code and advanced features. I don't know if you've seen this, it should be helpful: Learning Rust With Entirely Too Many Linked Lists
What do you mean by what kind of pointer? In the current code, you're taking a SList by value, which means the caller will not be able to use the list after that. This is probably not what you want, instead from what you're trying to do, I'd say you want to pass a mutable reference &mut to an SList, so you can modify it.
Also, note that you don't need to specify the type of local variables, the compiler will infer them for you. Did you try to compile this code by the way?