Add more types (Dictionary etc)
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 4/5
- Tempo estimado
- 3-5 dias
- Facilidade para iniciantes
- 35/100
- Tipo de issue
- Funcionalidade
- Clareza
- Razoavelmente clara
- Status de atividade
- Estagnada
- Stack de tecnologia
- csharp
- Domínio
- performance
Direção de pesquisa
Comece pelos exemplos de HashSetEnumerator, ToRefLinq, IRefEnumerable e IReadOnlyCollection da issue. Determine quais tipos de coleção adicionais, incluindo Dictionary, precisam de adaptadores e verifique o comportamento de descarte do enumerador e as características de alocação do Unity. O trabalho estará concluído quando os tipos compatíveis estiverem definidos e seus adaptadores preservarem o comportamento pretendido sem alocações.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Just tried this and seems to not allocate in Unity. Something more generic like IReadOnlyCollection can't be used as it allocates.
public static RefLinqEnumerable<T, HashSetEnumerator<T>> ToRefLinq<T>(this HashSet<T> c) => new(new(c));
public struct HashSetEnumerator<T> : IRefEnumerable<T>
{
private T curr;
private HashSet<T>.Enumerator ie;
public HashSetEnumerator(HashSet<T> list)
{
ie = list.GetEnumerator();
curr = default;
}
[MethodImpl(MethodImplOptions.AggressiveInlining)]
public bool MoveNext()
{
bool end = ie.MoveNext();
curr = ie.Current;
if(!end)
ie.Dispose();
return end;
}
public T Current => curr;
}
No idea if that Dispose is correct.
- Linguagem predominante
- C#
- Estrelas
- 172
- Forks
- 8
- Métricas de merge de PRs
- Nenhum PR com merge em 30d
Preparar o ambiente
Este projeto não oferece contêiner de desenvolvimento, Dockerfile nem guia de contribuição, então a configuração fica por sua conta: comece pelo README e veja nosso guia da primeira contribuição para os passos gerais.
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de ASC-Community/HonkPerf.NET
-
Strong name of RefLinq issueAbertabug
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 35/100
-
Dificuldade 5/5 Mais de uma semana Facilidade para iniciantes 20/100
-
enhancement good first issue
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 25/100
Todas as issues de ASC-Community/HonkPerf.NET
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
-
area: core priority: low type: bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
RicoSuter/Namotion.Interceptor#863 ·
Mantenedores costumam responder em até 1 dia
-
area-cli
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
0.3.0
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 86/100
Mantenedores costumam responder em até 2 dias