diff options
author | Masaya Tojo <masaya@tojo.tokyo> | 2024-03-24 21:07:25 +0900 |
---|---|---|
committer | Masaya Tojo <masaya@tojo.tokyo> | 2024-03-24 21:10:28 +0900 |
commit | 18a081d88ae031ba64215f1126e2ab756a692db2 (patch) | |
tree | dca8a69d81cdff136af0832e2c3306ade041cb4f /entities | |
parent | db4487272c42f73be62a63740ef1733dd4de3f52 (diff) |
Add article entity.
Diffstat (limited to 'entities')
-rw-r--r-- | entities/article.rkt | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/entities/article.rkt b/entities/article.rkt new file mode 100644 index 0000000..14319d7 --- /dev/null +++ b/entities/article.rkt @@ -0,0 +1,39 @@ +#lang typed/racket + +(provide Article + make-article + article? + article-id + article-timestamp + article-hash + article-title + article-body + + Article-With-Tags + make-article-with-tags + article-with-tags? + (rename-out [article-with-tags-tags article-tags]) + article->article-with-tags) + +(struct article ([id : String] + [timestamp : date] + [hash : String] + [title : String] + [body : String]) + #:type-name Article + #:constructor-name make-article + #:transparent) + +(struct article-with-tags article ([tags : (Listof String)]) + #:type-name Article-With-Tags + #:constructor-name make-article-with-tags + #:transparent) + +(: article->article-with-tags (-> Article (Listof String) Article-With-Tags)) +(define (article->article-with-tags a tags) + (make-article-with-tags (article-id a) + (article-timestamp a) + (article-hash a) + (article-title a) + (article-body a) + tags)) |