Hey axel, I recognize the problem space you are discussing. There are a couple strategies I could implement to try and solve the problems. And I'm not 100% sure you can solve all of them. But I certainly don't want to jump down the rabbit hole of reflection myself if I don't have to. So I'm looking for a package that has attempted to do this. I'd certainly take something that can't handle every case.
So far my googlefoo hasn't found the key words that differentiate this from pretty printing, or this type of package doesn't exist. Thanks for your response axel. On Monday, August 15, 2022 at 7:53:16 AM UTC-7 axel.wa...@googlemail.com wrote: > I don't believe this is possible, in general. For example, consider > > type S struct { > A *int > B *int > } > var x S > x.A = new(int) > x.B = x.A > > There is no single expression for the value of x. Or > > type P *P > x := new(P) > *x = x > > Then you have values which represent more than just their plain memory > resources. For example, an *os.File - restoring that would not give you the > same thing. > > There's lots of design space here and I don't think you can solve it in > full generality. So, at the very least, you have to be very deliberate > about what you want and what you are willing to give up. > > But. Maybe someone else has suggestions for a library doing an > approximation of this you'd like better. > > > On Mon, Aug 15, 2022 at 4:42 PM John <johns...@gmail.com> wrote: > >> Hey axel, >> >> Thanks for the reply, but unfortunately not. Because that is going to >> simply print pointer values out. I want it to unwind all of that (and >> handle the difficulty of recursive references). I want to be able to take >> what is printed and simply paste it into a file assigned to a variable, add >> the needed imports and have it compile. >> >> On Monday, August 15, 2022 at 7:34:08 AM UTC-7 axel.wa...@googlemail.com >> wrote: >> >>> Does fmt.Printf("%#v", v) do what you want? >>> >>> On Mon, Aug 15, 2022 at 4:27 PM John <johns...@gmail.com> wrote: >>> >>>> I know we have plenty of pretty printing out there, but i'm looking for >>>> a package that can print the Go representation of a Struct out to screen. >>>> >>>> So given: >>>> >>>> var x := &myStruct{ >>>> A: "hello" >>>> } >>>> >>>> someLib.Print(x) >>>> >>>> I get: >>>> >>>> &myStruct{ >>>> A: "hello" >>>> } >>>> >>>> I'm sure someone has used reflection to do this and figured out how >>>> they want to deal with recursive pointers, so don't want to go recreate >>>> the >>>> wheel here. >>>> >>>> Thanks. >>>> >>>> >>>> -- >>>> You received this message because you are subscribed to the Google >>>> Groups "golang-nuts" group. >>>> To unsubscribe from this group and stop receiving emails from it, send >>>> an email to golang-nuts...@googlegroups.com. >>>> To view this discussion on the web visit >>>> https://groups.google.com/d/msgid/golang-nuts/f4fa3f7b-318e-407b-96ef-16102db1e037n%40googlegroups.com >>>> >>>> <https://groups.google.com/d/msgid/golang-nuts/f4fa3f7b-318e-407b-96ef-16102db1e037n%40googlegroups.com?utm_medium=email&utm_source=footer> >>>> . >>>> >>> -- >> You received this message because you are subscribed to the Google Groups >> "golang-nuts" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to golang-nuts...@googlegroups.com. >> > To view this discussion on the web visit >> https://groups.google.com/d/msgid/golang-nuts/2029ba81-dbf5-44c2-ac9f-228dcb7837f4n%40googlegroups.com >> >> <https://groups.google.com/d/msgid/golang-nuts/2029ba81-dbf5-44c2-ac9f-228dcb7837f4n%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- You received this message because you are subscribed to the Google Groups "golang-nuts" group. To unsubscribe from this group and stop receiving emails from it, send an email to golang-nuts+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/golang-nuts/0e2af167-4bad-49a1-8a12-e5218204b47fn%40googlegroups.com.