Skip to content

Commit ebf15c2

Browse files
committed
updated README with better example
1 parent fdb7623 commit ebf15c2

File tree

2 files changed

+19
-11
lines changed

2 files changed

+19
-11
lines changed

README.md

+19-11
Original file line numberDiff line numberDiff line change
@@ -11,21 +11,29 @@ Example
1111
---
1212

1313
```purescript
14+
-- your data type
15+
data Tree' a = Leaf' | Node' (Tree' a) a (Tree' a)
1416
15-
newtype User = User {name :: String, age :: Int, friends :: Test}
17+
-- derive generic
18+
derive instance treeGeneric :: Generic (Tree' a) _
1619
17-
derive instance genericUser :: Generic User _
20+
-- create instances for the needed type classes
21+
instance treeEdges :: Edges a => Edges (Tree' a) where edges x = genericEdges x
22+
instance treeDotRepr :: Edges a => GraphRepr (Tree' a) where toGraph = genericToGraph
1823
19-
instance egdeUser :: Edges User where
20-
edges = genericEdges
24+
example :: String
25+
example = renderToSvg Dot $ toGraph $
26+
Node' Leaf' 3 (Node' (Node' Leaf' 5 Leaf') 4 Leaf')
27+
-- example = "...<svg><g>...</g>...</svg>..."
28+
```
2129

22-
instance graphReprUser :: GraphRepr User where
23-
toDot = genericToDot
30+
![screenshot](screenshot.png)
2431

25-
generateSvg :: ∀a. GraphRepr a => a -> String
26-
generateSvg e = renderToSvg Dot e
32+
see [full file](./test/Example.purs) for imports
2733

28-
example = generateSvg (User {name: "Test", age: 2, friends: R A A B})
29-
```
34+
TODOs
35+
-----
3036

31-
![screenshot](screenshot.png)
37+
- Refactor into multiple libraries
38+
- support entine DOT language in data model
39+
- allow custom edges in GenericGraph

screenshot.png

3.89 KB
Loading

0 commit comments

Comments
 (0)