source/multi_source.go
func (ms *multiSource) Endpoints() ([]*endpoint.Endpoint, error) {
	result := []*endpoint.Endpoint{}

	for _, s := range ms.children {
		endpoints, err := s.Endpoints()
		if err != nil {
			return nil, err
		}

		result = append(result, endpoints...)
	}

	return result, nil
}
func (ms *multiSource) Endpoints() ([]*endpoint.Endpoint, error) {
	result := []*endpoint.Endpoint{}

	for _, s := range ms.children {
		endpoints, err := s.Endpoints()
		if err != nil {
			return nil, err
		}

		result = append(result, endpoints...)
	}

	return result, nil
}
// Endpoints collects endpoints of all nested Sources and returns them in a single slice.