/// <nodoc/>
 public ValueTask <Possible <ModuleDefinition> > TryGetModuleDefinitionAsync(ModuleDescriptor moduleDescriptor)
 {
     return(ValueTask.FromResult(m_moduleDefinitions.ContainsKey(moduleDescriptor)
         ? new Possible <ModuleDefinition>(m_moduleDefinitions[moduleDescriptor])
         : new Possible <ModuleDefinition>(
                                     new ModuleNotFoundInSimpleSourceResolverFailure(moduleDescriptor))));
 }
 /// <nodoc/>
 public ValueTask <Possible <IReadOnlyCollection <ModuleDescriptor> > > TryGetModuleDescriptorsAsync(ModuleReferenceWithProvenance moduleReference)
 {
     return
         (ValueTask.FromResult(
              new Possible <IReadOnlyCollection <ModuleDescriptor> >(
                  m_moduleDefinitions.Keys.Where(moduleDescriptor => moduleDescriptor.Name.Equals(moduleReference.Name))
                  .ToList())));
 }
        /// <nodoc/>
        public ValueTask <Possible <ModuleDescriptor> > TryGetOwningModuleDescriptorAsync(AbsolutePath specPath)
        {
            foreach (var moduleDefinition in m_moduleDefinitions.Values)
            {
                if (moduleDefinition.Specs.Contains(specPath))
                {
                    return(ValueTask.FromResult(new Possible <ModuleDescriptor>(moduleDefinition.Descriptor)));
                }
            }

            return
                (ValueTask.FromResult(
                     new Possible <ModuleDescriptor>(new ModuleNotFoundInSimpleSourceResolverFailure(specPath))));
        }
 /// <nodoc/>
 public ValueTask <Possible <HashSet <ModuleDescriptor> > > GetAllKnownModuleDescriptorsAsync()
 {
     return
         (ValueTask.FromResult(
              new Possible <HashSet <ModuleDescriptor> >(new HashSet <ModuleDescriptor>(m_moduleDefinitions.Keys))));
 }