On Sun, Jan 31, 2010 at 10:33 PM, Barry Dahlberg <barry.dahlb...@gmail.com> wrote: > Perhaps I'll write up my findings once the language stops intimidating > me. > > At the moment I'm writing an account "object". I have some standard > CRUD type functions which operate on a map behind the scenes. I would > like to add some metadata to start specifying rules for validation, UI > generation and so on. The trouble is I can't really figure out where > to attach this metadata as I don't have a type definition as such, > e.g. I would do this in C#: > > [Required, MaxLength(50)] > public string Name { get; set; } > > defstruct seems promising though I can't find an example with > metadata. > > Any pointers of where to start looking?
You can attach metadata to Clojure constructs using the with-meta function: user=> (def x {:name "Frank"}) #'user/x user=> (def x-with-metadata (with-meta x {:RequiredParameter true, :MaxLength 50})) #'user/x-with-metadata user=> (:MaxLength (meta x-with-metadata)) 50 As for whether you want to define the metadata directly on your map, or on functions that construct/operate on your map, or somewhere else, that's your design decision. e -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en