func Value()

in block_value.go [10:33]


func Value(b Block) map[string]cty.Value {
	values := make(map[string]cty.Value)

	blockType := reflect.TypeOf(b)
	blockValue := reflect.ValueOf(b)

	// Check if the block is a pointer and dereference it if so
	if blockType.Kind() == reflect.Ptr {
		blockType = blockType.Elem()
		blockValue = blockValue.Elem()
	}

	for i := 0; i < blockType.NumField(); i++ {
		field := blockType.Field(i)
		tagName, tagDefined := fieldName(field)
		if !tagDefined {
			continue
		}
		fieldValue := blockValue.Field(i)
		values[tagName] = ToCtyValue(fieldValue.Interface())
	}

	return values
}