// I have a dependency named apis as well
// which does this refer to? the module,
// but we wanted it to refer to the dependency
// this is the correct way to refer to the dependency
It looks like it's trying to prevent this sort of ambiguity, or is trying to be backwards compatible.
It's kinda like the module version of Universal Function Call Syntax. Like how you might write <SomeType as std::io::Write>::write(&mut some_writer) when both std::io::Write and std::fmt::Write are in scope (they both have a write() method).
You'll often see it used it in macros or generated code, because you don't necessarily know what the caller will have in scope at the time and want to avoid ambiguities.