You are an expert in writing code in many different languages. Your goal is to perform code completion for the following code, keeping in mind the rest of the code and the file meta data.
    Metadata details:
    filename: gen_property_toot_signatureValue.go
    path of file: ./repos/gotosocial/vendor/github.com/superseriousbusiness/activity/streams/impl/toot/property_signaturevalue
    
    the code of the file until where you have to start completion: // Code generated by astool. DO NOT EDIT.

package propertysignaturevalue

import (
	"fmt"
	string1 "github.com/superseriousbusiness/activity/streams/values/string"
	vocab "github.com/superseriousbusiness/activity/stre
    
func DeserializeSignatureValueProperty(m map[string]interface{}, aliasMap map[string]string) (*TootSignatureValueProperty, error) {
	alias := ""
	if a, ok := aliasMap["http://joinmastodon.org/ns"]; ok {
		alias = a
	}
	propName := "signatureValue"
	if len(alias) > 0 {
		// Use alias both to find the property, and set within the property.
		propName = fmt.Sprintf("%s:%s", alias, "signatureValue")
	}
	i, ok := m[propName]

	if ok {
		if s, ok := i.(string); ok {
			u, err := url.Parse(s)
			// If error exists, don't error out -- skip this and treat as unknown string ([]byte) at worst
			// Also, if no scheme exists, don't treat it as a URL -- net/url is greedy
			if err == nil && len(u.Scheme) > 0 {
				this := &TootSignatureValueProperty{
					alias: alias,
					iri:   u,
				}
				return this, nil
			}
		}
		if v, err := string1.DeserializeString(i); err == nil {
			this := &TootSignatureValueProperty{
				alias:                 alias,
				hasStringMember:       true,
				xmlschemaStringMember: v,
			}
			return this, nil
		}
		this := &TootSignatureValueProperty{
			alias:   alias,
			unknown: i,
		}
		return this, nil
	}
	return nil, nil
}