Thanks, that's what I was starting to converge on, basically relying on a 
unique identifier for the prototype... but in trying to be flexible perhaps 
a component "instance" would actually just be the search text for a more 
comprehensive search which may in fact pull up several prototypes which the 
user can select in more detail later on.

On Sunday, August 10, 2014 11:19:06 PM UTC-7, Jozef Wagner wrote:
>
> Assign a unique name to the prototype object. Serialize instances as 
> map and put the reference to the prototype object under one of their 
> keys. Something like 
>
> {:prototype-components {:r10k {:resistance 10, :type :fixed, :unit :kΩ}} 
>  :components [{:name "resistor 1", :proto :r10k}, {:name "resistor 2", 
> :proto :r10k}]} 
>
> Jozef 
>
> On Sun, Aug 10, 2014 at 8:36 PM, MS <5lvq...@sneakemail.com <javascript:>> 
> wrote: 
> > I'm trying to write an EE schematic capture program in clojure.  I'd 
> like to 
> > be able to define a prototype component, say a resistor with value=10k, 
> then 
> > be able to instantiate that many times, with each instance having an 
> > additional property such as a name string.  It's easy to ensure 
> (identical? 
> > (proto instance1) (proto instance2)) returns true while in-memory, 
> however 
> > I'm not sure how to write this out to disk. 
> > 
> > It seems the serialization libraries, print-dup, edn, etc., operate on 
> > values, so reading the database back in won't guarantee it's really the 
> same 
> > object.  I'd like to have the thing defined *once* then instantiated 
> many 
> > times, and have this captured in the on-disk version. 
> > 
> > Am I barking up the wrong tree?  ie, given immutable data structures, 
> > there's kind of no point in doing this.  I'm actually trying to save 
> disk 
> > space, so I'd like to be able to refer in a few characters a potentially 
> > large structure that was defined earlier.  It would also be nice to have 
> > this be human readable. 
> > 
> > Would one of the JSON serializers do this for me? 
> > 
> > 
> > -- 
> > You received this message because you are subscribed to the Google 
> > Groups "Clojure" group. 
> > To post to this group, send email to clo...@googlegroups.com 
> <javascript:> 
> > Note that posts from new members are moderated - please be patient with 
> your 
> > first post. 
> > To unsubscribe from this group, send email to 
> > clojure+u...@googlegroups.com <javascript:> 
> > For more options, visit this group at 
> > http://groups.google.com/group/clojure?hl=en 
> > --- 
> > You received this message because you are subscribed to the Google 
> Groups 
> > "Clojure" group. 
> > To unsubscribe from this group and stop receiving emails from it, send 
> an 
> > email to clojure+u...@googlegroups.com <javascript:>. 
> > For more options, visit https://groups.google.com/d/optout. 
>

-- 
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
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to