package iroh

import (
	
	
	
)

// TransportAddrUsage reports whether a remote transport address is active.
type TransportAddrUsage int

const (
	// TransportAddrInactive means the address is known but not currently used.
	TransportAddrInactive TransportAddrUsage = iota
	// TransportAddrActive means the address is currently used.
	TransportAddrActive
)

// TransportAddrInfo is a remote transport address plus usage metadata.
type TransportAddrInfo struct {
	Addr       netaddr.TransportAddr
	Usage      TransportAddrUsage
	Provenance string
}

// RemoteInfo is a snapshot of known addressing information for a remote
// endpoint.
type RemoteInfo struct {
	ID    key.EndpointID
	Addrs []TransportAddrInfo
}

func remoteInfoFromSocket( socket.RemoteInfo) RemoteInfo {
	 := make([]TransportAddrInfo, 0, len(.Addrs))
	for ,  := range .Addrs {
		 = append(, TransportAddrInfo{
			Addr:       .Addr,
			Usage:      transportAddrUsageFromSocket(.Usage),
			Provenance: .Provenance,
		})
	}
	return RemoteInfo{ID: .ID, Addrs: }
}

func transportAddrUsageFromSocket( socket.TransportAddrUsage) TransportAddrUsage {
	if  == socket.TransportAddrActive {
		return TransportAddrActive
	}
	return TransportAddrInactive
}