func (o *SparseEnforcerTraceReport) SetBSON(raw bson.Raw) error {

	if o == nil {
		return nil
	}

	s := &mongoAttributesSparseEnforcerTraceReport{}
	if err := raw.Unmarshal(s); err != nil {
		return err
	}

	if s.EnforcerID != nil {
		o.EnforcerID = s.EnforcerID
	}
	if s.EnforcerNamespace != nil {
		o.EnforcerNamespace = s.EnforcerNamespace
	}
	if s.Namespace != nil {
		o.Namespace = s.Namespace
	}
	if s.PuID != nil {
		o.PuID = s.PuID
	}
	if s.Records != nil {
		o.Records = s.Records
	}

	return nil
}
// SetBSON implements the bson marshaling interface.
// This is used to transparently convert ID to MongoDBID as ObectID.
SetBSON implements the bson marshaling interface.
This is used to transparently convert ID to MongoDBID as ObectID.
// SetBSON implements the bson marshaling interface . // This is used to transparently convert ID to MongoDBID as ObectID .
func (o *SparseEnforcerTraceReport) SetBSON(raw bson.Raw) error {
	if o == nil {
		return nil
	}
	s := &mongoAttributesSparseEnforcerTraceReport{}
	if err := raw.Unmarshal(s); err != nil {
		return err
	}
	if s.EnforcerID != nil {
		o.EnforcerID = s.EnforcerID
	}
	if s.EnforcerNamespace != nil {
		o.EnforcerNamespace = s.EnforcerNamespace
	}
	if s.Namespace != nil {
		o.Namespace = s.Namespace
	}
	if s.PuID != nil {
		o.PuID = s.PuID
	}
	if s.Records != nil {
		o.Records = s.Records
	}
	return nil
}
func ( o * SparseEnforcerTraceReport ) SetBSON ( raw bson . Raw ) error { if o == nil { return nil } s := & mongoAttributesSparseEnforcerTraceReport { } if err := raw . Unmarshal ( s ) ; err != nil { return err } if s . EnforcerID != nil { o . EnforcerID = s . EnforcerID } if s . EnforcerNamespace != nil { o . EnforcerNamespace = s . EnforcerNamespace } if s . Namespace != nil { o . Namespace = s . Namespace } if s . PuID != nil { o . PuID = s . PuID } if s . Records != nil { o . Records = s . Records } return nil }
SetBSON implements the bson marshaling interface.
SetBSON implements the bson marshaling interface .