GraphiteEditor / GraphiteEditor/Graphite
A network's import cannot be connected directly to its export
- Langage dominant
- Rust
- Étoiles
- 27.3k
- Forks
- 1.3k
- Merge moyen
- 20 h 5 min
- PR mergées (30 j)
- 57
Description
Currently it is only possible to connect NodeInput::Value (disconnected export), or NodeInput::Node (link to node) to an export (UI only export node). It is not possible to connect an import directly to the export, which would result in a NodeInput::Import. To fix this, the flattening processing in `flatten_with_fns` will have to be adjusted to include exports when setting a NodeInput::Import to whatever that parent nodes input is.
I started some code, which outlines the general idea, but I could not get it to compile. I think this is an interesting problem to solve, which requires understanding the flattening process during compilation, and how to adapt the various methods to work with the network exports vec, rather than the node inputs vec.
Some relevant starting points are uncommenting the (None, None) case in `NodeGraphMessage::ConnectNodesByLink`, removing the reconnect restriction in `remove_references_from_network`, and understanding `flatten_with_fns`.
There are also some pictures and helpful discussion here:
https://discord.com/channels/731730685944922173/1238015208534966313/1239327786104262730

https://discord.com/channels/731730685944922173/1238015208534966313/1240797177467506688

Guide de contribution
Aucun guide de contribution indexé pour ce dépôt
Piste de recherche
Commencez par examiner NodeGraphMessage::ConnectNodesByLink, la restriction de reconnexion dans remove_references_from_network et flatten_with_fns. Suivez la manière dont les exports du réseau et les entrées des nœuds sont gérés pendant le flattening, en utilisant la discussion liée et les diagrammes comme contexte. Le travail est considéré comme terminé lorsqu’un import peut se connecter directement à un export et que le flattening produit le NodeInput::Import correspondant sans casser les connexions existantes.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- rust
- Domaine
- backend, compilers
- Type d'issue
- Fonctionnalité
- Difficulté
- 4/5
- Temps estimé
- 3-5 jours
- Activité
- À l'abandon
- Clarté
- Plutôt claire
- Accessibilité débutants
- 35/100