add core struct
This commit is contained in:
		
							parent
							
								
									077b89db17
								
							
						
					
					
						commit
						df646e9a51
					
				| 
						 | 
					@ -33,6 +33,8 @@ typedef struct FstBuilderNode {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FstBuilderNode *fstBuilderNodeDefault();
 | 
					FstBuilderNode *fstBuilderNodeDefault();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FstBuilderNode *fstBuilderNodeClone(FstBuilderNode *src);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void fstBuilderNodeCloneFrom(FstBuilderNode *dst, FstBuilderNode *src);
 | 
					void fstBuilderNodeCloneFrom(FstBuilderNode *dst, FstBuilderNode *src);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -54,5 +54,4 @@ FstRegistry* fstRegistryCreate(uint64_t tableSize, uint64_t mruSize);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
FstRegistryEntry* fstRegistryGetEntry(FstRegistry *registry, FstBuilderNode *bNode);
 | 
					FstRegistryEntry* fstRegistryGetEntry(FstRegistry *registry, FstBuilderNode *bNode);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
uint64_t fstRegistryHash(FstRegistry *registry, FstBuilderNode *node);
 | 
					 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,6 +22,26 @@ FstBuilderNode *fstBuilderNodeDefault() {
 | 
				
			||||||
  return bn;
 | 
					  return bn;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FstBuilderNode *fstBuilderNodeClone(FstBuilderNode *src) {
 | 
				
			||||||
 | 
					  FstBuilderNode *node = malloc(sizeof(FstBuilderNode));  
 | 
				
			||||||
 | 
					  if (node == NULL) { return NULL; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					      
 | 
				
			||||||
 | 
					  size_t sz = taosArrayGetSize(src->trans);
 | 
				
			||||||
 | 
					  SArray *trans = taosArrayInit(sz, sizeof(FstTransition));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  for (size_t i = 0; i < sz; i++) {
 | 
				
			||||||
 | 
					    FstTransition *tran = taosArrayGet(src->trans, i);
 | 
				
			||||||
 | 
					    FstTransition t = *tran;
 | 
				
			||||||
 | 
					    taosArrayPush(trans, &t);   
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  node->trans = trans; 
 | 
				
			||||||
 | 
					  node->isFinal = src->isFinal;
 | 
				
			||||||
 | 
					  node->finalOutput = src->finalOutput;
 | 
				
			||||||
 | 
					  return node;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
// not destroy src, User's bussiness  
 | 
					// not destroy src, User's bussiness  
 | 
				
			||||||
void fstBuilderNodeCloneFrom(FstBuilderNode *dst, FstBuilderNode *src) {
 | 
					void fstBuilderNodeCloneFrom(FstBuilderNode *dst, FstBuilderNode *src) {
 | 
				
			||||||
  if (dst == NULL || src == NULL) { return; } 
 | 
					  if (dst == NULL || src == NULL) { return; } 
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue