将结构复制到实现接口的结构中

I'm currently trying to copy a struct into another structure which implement an interface. My code is the following:

     package main

     import (
         "fmt"
     )

     type intf interface {
         SaySomething(string)
         LaunchTheDevice(origin)
     }

     type destination struct{
         origin
     }

     func (dest *destination) SaySomething(s string) {
         fmt.Println("I'm saying --> ",s)
     }

     func (dest *destination) LaunchTheDevice(theOrigin origin) {
        *dest = theOrigin
     }

     type origin struct{
         name string
         value string
         infos string   
     }

     func main() {
         firstValue:= new(origin)
         firstValue.name = "Nyan"
         firstValue.value = "I'm the only one"
         firstValue.infos = "I'm a cat"

         secondValue := new(destination)
         secondValue.LaunchTheDevice(*firstValue)
     }

I want that the function LaunchTheDevice() set the values of destination. But when I run my code I get this error:

cannot use theOrigin (type origin) as type destination in assignment

So how can I do this? And why I can't run my code? I don't understand because I can type

dest.name = "a value"
dest.value = "another value"
dest.infos = "another value"

But dest=theOrigin doesn't work while dest have the same struct as theOrigin.

Thanks in advance!

The field origin is an embedded field. The application can set the field using the following code:

 func (dest *destination) LaunchTheDevice(theOrigin origin) {
    dest.origin = theOrigin
 }

The name of an embedded field is the same as the type name.