From 18a081d88ae031ba64215f1126e2ab756a692db2 Mon Sep 17 00:00:00 2001 From: Masaya Tojo Date: Sun, 24 Mar 2024 21:07:25 +0900 Subject: Add article entity. --- entities/article.rkt | 39 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 39 insertions(+) create mode 100644 entities/article.rkt (limited to 'entities') 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)) -- cgit v1.2.3