pub trait GitBash {
// Required method
fn connect_to_git_bash_or_linux(path: &Path) -> Result<Client, Error>;
}
Expand description
Trait adds new methods to the struct implementation.
On Windows, git-for-windows, git-bash, cygwin, msysgit, msys2 and mingW64 provide functionality similar to a Linux distribution.
Linux uses UnixStream, but Windows before 2019 didn’t have UDS ‘Unix Domain Socket’.
Windows “git-bash” needed a different way for “ssh-add” (client) and “ssh-agent” (server) for inter process communication.
They invented a special protocol and use the Tcp Socket instead of Unix Socket.
https://stackoverflow.com/questions/23086038/what-mechanism-is-used-by-msys-cygwin-to-emulate-unix-domain-sockets
https://github.com/abourget/secrets-bridge/blob/master/pkg/agentfwd/agentconn_windows.go
Required Methods§
fn connect_to_git_bash_or_linux(path: &Path) -> Result<Client, Error>
Dyn Compatibility§
This trait is not dyn compatible.
In older versions of Rust, dyn compatibility was called "object safety", so this trait is not object safe.